Yanıtlar:
Ctrl-Zçalışmakta olan işlemi askıya alır. İfadede
for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done
dışındaki tüm komutlar convert(yani for, in, dove done) olan bashcari kabukta çalışan 'ın anahtar kelimeleri ve kabuk kendini askıya alamaz (ve nasıl olsa Niyetiniz değildir). Dolayısıyla, vurduğunuzda Ctrl-Zve convertaskıya alma komutları verdiğinizde , döngü artık işlenecek bir şey olmadığı için çıkacaktır.
Tüm döngüyü askıya almak istiyorsanız, alt kabuk ortamında çalıştırın:
(for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done)
Geçerli kabuktaki tüm döngüyü askıya alabilen tek kabuk var zsh.
Ctrl-Zsadece bir dönüştürme örneğini askıya alabilir, döngünün devam edip başka bir tane başlatamamasının bir nedeni yoktur. Nedense bashdöngüyü durdurur. Döngüde test ettiğimde dash, diğer mermiler muhtemelen aynısını yapıyor.
zshmevcut kabuğun içinde çalışan tüm döngüyü askıya alabilir).
bashgeliştiriciler muhtemelen sizinle aynı düşünceye sahipti. Döngüye devam etmek yine de beklediğim şeydi, süreci durdurup el kontrolünü kabuğa geri götürdüğünüzde kaldığı yerden devam etmesi doğal görünüyor (ve muhtemelen basheklemedikleri takdirde davranış olurdu) başka bir şey yapmak için kod).
for i in *.txt; do echo "$i"; sleep 0.5 ; done(GNU bash, Sürüm 4.2.53) için onaylayabilirim