Řešení 1:
for DIR in * ; do rsync -a $DIR example.com:somewhere/ || break; done
Toto také ukončí smyčku, pokud z nějakého důvodu selže jednotlivé běh rsync.
Řešení 2:
Pro rozšíření Dennisovy odpovědi může váš kód vypadat takto:
trap "echo Exited!; exit;" SIGINT SIGTERM
Pro funkční příklad (který náhodou zahrnuje rsync) se podívejte na http://gist.github.com/279849.
Řešení 3:
Na Control-C můžete nastražit past.
trap <command> SIGINT
spustí command
když stisknete Control-C. Stačí zadat trap
někde ve skriptu v bodě, kde chcete, aby se stal účinným.
Řešení 4:
- Stiskněte
Ctrl-Z
pozastavit skript; kill %%
Poděkování, vysvětlení a další podrobnosti v této odpovědi.
Řešení 5:
Když vložíte řetězec příkazů do závorek, bude řetězec fungovat jako jeden proces a obdrží SIGINT a skončí, když stisknete Ctrl -C :
(for DIR in * ; do rsync -a $DIR example.com:somewhere/ ; done)
Ale! V případě rsync
příkaz, umožňuje více zdrojů, takže kód, který jste napsali, by byl lépe napsaný jako:
rsync -a * example.com:somewhere/