tôi thiết lập một dự án ví dụ với cấu trúc sau:Guard thực thi kịch bản shell hai lần
Gemfile
Guardfile
Nội dung của những tập tin này là:
# Gemfile
source :rubygems
gem "guard"
gem "guard-shell"
và
# Guardfile
guard 'shell' do
watch(/^test\.txt$/) {|m| `echo #{m.inspect} #{File.mtime(m[0])}` }
end
Sau đó tôi tiếp tục để chạy guard
. Bất cứ khi nào tôi echo một cái gì đó vào tập tin đó, bảo vệ đăng ký một sự thay đổi hai lần. Trong một vỏ:
$ echo blah >> test.txt
trong bảo vệ vỏ chạy:
> [test.txt] 2012-06-26 00:40:22 +0200
> [test.txt] 2012-06-26 00:40:22 +0200
Các hành vi tương tự chiếm vim/nano, vv Điều thú vị là khi tôi chỉ cần chạy echo blah > test.txt
, bảo vệ chỉ cháy một lần.
Bất kỳ ý tưởng nào về cách tôi có thể ngăn điều này xảy ra hoặc liệu hành vi này có được mong đợi không?
EDIT: Khai trương lên một vấn đề trên github: https://github.com/guard/guard/issues/297#issuecomment-6586266
Tuyệt vời :) Tôi không chắc liệu tôi có thiếu điều gì hiển nhiên hay không. Cảm ơn vi đa trả lơi! – jabalsad