Risposte:
Ctrl-Zsospende il processo attualmente in esecuzione. In espressione
for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done
tutti i comandi, ad eccezione convert(ad esempio for, in, doe done) sono bash's parole chiave in esecuzione nella shell corrente e Shell non possono sospendere per sé (e non è vostra intenzione comunque). Quindi quando si preme Ctrl-Ze il comando convertsi interrompe, il loop si chiuderà semplicemente perché non c'è più nulla da elaborare.
Se vuoi essere in grado di sospendere l'intero ciclo, eseguilo nell'ambiente subshell:
(for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done)
L'unica shell che conosco che è in grado di sospendere l'intero loop nella shell corrente è zsh.
Ctrl-Zpotrebbe semplicemente sospendere l'istanza di una conversione, non c'è motivo per cui il ciclo non possa continuare e avviarne un'altra. Per qualche motivo bashinterrompe il ciclo. Quando continuo il test nel dashloop, probabilmente altre shell fanno lo stesso.
zshè in grado di sospendere l'intero ciclo in esecuzione nella shell corrente).
bashprobabilmente gli sviluppatori hanno avuto la tua stessa opinione. Continuare il ciclo è comunque quello che mi sarei aspettato, tuttavia, quando si interrompe il processo e si torna al controllo manuale sulla shell, sembra naturale che riprenda da dove si era interrotto (e probabilmente sarebbe il comportamento bashse non si aggiungessero codice per fare qualcos'altro).
for i in *.txt; do echo "$i"; sleep 0.5 ; done(GNU bash, versione 4.2.53)