Bir dosya değiştiğinde bir komutu çalıştırmak için hızlı ve basit bir yol istiyorum. Çok basit bir şey istiyorum, bir terminalde çalışır durumda bırakacağım ve o dosya ile çalışmayı bitirdiğimde kapatacağım bir şey.
Şu anda bunu kullanıyorum:
while read; do ./myfile.py ; done
Ve sonra bu dosyayı editörüme her kaydettiğimde o terminale gidip Enter tuşuna basmam gerekiyor. İstediğim şey şöyle bir şey:
while sleep_until_file_has_changed myfile.py ; do ./myfile.py ; done
Ya da bu kadar kolay başka bir çözüm.
BTW: Vim kullanıyorum ve BufWrite üzerinde bir şey çalıştırmak için bir otomatik komut ekleyebileceğimi biliyorum, ancak bu şu anda istediğim türden bir çözüm değil.
Güncelleme: Basit, mümkünse atılabilir bir şey istiyorum. Dahası, bir terminalde çalışacak bir şey istiyorum çünkü program çıktısını görmek istiyorum (hata mesajlarını görmek istiyorum).
Cevaplar hakkında: Tüm cevaplarınız için teşekkürler! Hepsi çok iyi ve her biri diğerlerinden çok farklı bir yaklaşım sergiliyor. Sadece bir tanesini kabul etmem gerektiğinden, en şık olmadığını bilsem de, gerçekten kullandığım (basit, hızlı ve hatırlaması kolay) bir tanesini kabul ediyorum.
Vim kullanarak çözüm:
:au BufWritePost myfile.py :silent !./myfile.py
Ancak bu çözümü istemiyorum çünkü yazmak biraz can sıkıcı, tam olarak ne yazılacağını hatırlamak biraz zor ve etkilerini geri almak biraz zor (:au! BufWritePost myfile.py
dosyasını çalıştırmak gerekiyor). Ek olarak, bu çözüm komutun çalışması bitene kadar Vim'i bloke eder.
Diğer insanlara yardımcı olabileceği için bu çözümü buraya ekledim.
Program çıktısını görüntülemek için (ve çıktı siz Enter tuşuna basana kadar birkaç saniye boyunca editörünüzün üzerine yazacağından düzenleme akışınızı tamamen bozmak için) :silent
komutunu kaldırın.
Programlama tarafında biraz daha fazla, ancak inotify gibi bir şey istiyorsunuz. Birçok dilde jnotify ve pyinotify gibi uygulamalar vardır.
Bu kütüphane, tek dosyaları veya tüm dizinleri izlemenize olanak tanır ve bir eylem keşfedildiğinde olayları döndürür. Döndürülen bilgiler, diğer yararlı bilgilerin yanı sıra dosya adını, eylemi (oluşturma, değiştirme, yeniden adlandırma, silme) ve dosya yolunu içerir.