Solusi 1:
for DIR in * ; do rsync -a $DIR example.com:somewhere/ || break; done
Ini juga akan keluar dari loop jika menjalankan rsync individu gagal karena beberapa alasan.
Solusi 2:
Untuk memperluas jawaban Dennis, kode Anda mungkin terlihat seperti:
trap "echo Exited!; exit;" SIGINT SIGTERM
Untuk contoh yang berfungsi (yang melibatkan rsync), lihat http://Gist.github.com/279849.
Solusi 3:
Anda dapat mengatur jebakan untuk Control-C.
trap <command> SIGINT
akan mengeksekusi command
saat Control-C ditekan. Masukkan saja trap
pernyataan di suatu tempat di skrip Anda pada titik di mana Anda ingin itu menjadi efektif.
Solusi 4:
- Tekan
Ctrl-Z
untuk menangguhkan skrip; kill %%
Penghargaan, penjelasan, dan detail lainnya dalam jawaban ini.
Solusi 5:
Saat Anda meletakkan string perintah di dalam tanda kurung, string tersebut akan bertindak sebagai proses tunggal, dan akan menerima SIGINT dan berhenti saat Anda menekan Ctrl -C :
(for DIR in * ; do rsync -a $DIR example.com:somewhere/ ; done)
Tetapi! Dalam kasus rsync
perintah, ini memungkinkan banyak sumber, sehingga kode yang Anda tulis akan lebih baik ditulis sebagai:
rsync -a * example.com:somewhere/