Döngüler muhtemelen bunu yapmanın doğru yoludur, ancak işte eğlenceli bir alternatif:
echo -e {1..10}"\n" |xargs -n1 some_command
Çağrınız için parametre olarak yineleme numarasına ihtiyacınız varsa, şunu kullanın:
echo -e {1..10}"\n" |xargs -I@ echo now I am running iteration @
Düzenleme: Haklı olarak yukarıda verilen çözüm sadece basit komut çalıştırma (sorunsuz, vb) ile sorunsuz çalışması yorumlandı. her zaman birsh -c
daha karmaşık şeyler yapmak için , ancak buna değmez.
Normalde kullandığım başka bir yöntem aşağıdaki işlevdir:
rep() { s=$1;shift;e=$1;shift; for x in `seq $s $e`; do c=${@//@/$x};sh -c "$c"; done;}
şimdi şöyle diyebilirsiniz:
rep 3 10 echo iteration @
İlk iki sayı aralığı verir. @
İterasyon sayısına çevrilir alacak. Şimdi bunu borularla da kullanabilirsiniz:
rep 1 10 "ls R@/|wc -l"
size R1 .. R10 dizinlerindeki dosya sayısını verir.
let ++n
yerinen=$((n+1))
(3 daha az karakterden).