Bir klasördeki tüm dosyalar üzerinde bir kabuk betiğini çalıştırmak için Automator kullanarak bir hizmet oluşturmak istiyorum, tüm günlük dosyalarını sil diyelim. Yaptığım şey
- Automator'da yeni bir servis yaratıldı.
- Bir "Shell Komut Dosyasını Çalıştır" eylemi eklendi. Şimdilik bunu 'pwd' olarak değiştirdim.
- Seçilen "Servis seçilen klasörleri alır".
- Çalıştırmaya çalıştım ama bir mesaj al. "Bu hizmeti Automator'da test etmek için, iş akışınızın başlangıcına" Belirli Bulucu Öğeleri Al "işlemini ekleyin. İş akışını Automator dışında çalıştırmadan önce işlemi kaldırın veya devre dışı bırakın.
- TAMAM. Böylece "Belirtilen Bulucu Öğeleri Al" ekliyorum. Öğe listesine bir 'test' dizini eklendi.
Şimdi, betiği çalıştırdığımda, sonuçlar penceresi ana dizini yazdırıyor.
Başka bir yerde, belki de eklemek zorunda olduğumu okudum
cd "$1"
senaryonun başına Bunu yaptım ama yine de ev dizinimi yazdırıyor. Bu şeyi "Belirtilen Bulucu Öğeleri Al" seçeneğinde seçtiğim dizini yazdırmak için nasıl alabilirim?
Eklemek için Düzenlendi
İşte çalışan bir betiğin ekran görüntüsü.
İşte bir ekran görüntüsü os işe yaramazsa bir komut dosyası.
"Eşleşme bulunamadı: * .log" hatasıyla başa çıkmamın normal yolu, hata çıktısını null'a yönlendirmektir. "Rm" satırını değiştirmek
find . -name "*.log" -print0 | xargs -0 rm -rf
Yine de çalışır. Bu olması gerekenden daha zor görünüyor.