Saya ingin membuat loop yang mengulangi transfer ncftp jika mengembalikan kesalahan.
Saya sedikit tidak yakin bagaimana variabel kode keluar dapat digunakan dalam satu lingkaran. Apakah sesuatu seperti ini berfungsi?
until [$? == 0]; do
ncftpput -DD -z -u user -p password remoteserver /remote/dir /local/file
done
Jawaban:
Saya menemukan dasar untuk loop elegan ini di tempat lain di serverfault. Ternyata tidak perlu menyimpan kode keluar, karena Anda dapat menguji langsung pada perintah itu sendiri;
sumber
Hampir. Anda mungkin lebih baik menyimpan nilai kembali sebagai variabel sehingga Anda dapat mengaturnya sebelum loop. Kalau tidak, itu akan dipengaruhi oleh perintah yang terakhir dijalankan.
Anda mungkin juga ingin menggantungkan sling
sleep
di sana untuk menghentikan respawning terlalu cepat.sumber
Agak macet tapi solusi saya adalah hanya membuat fungsi bash yang berjalan sendiri jika keluar dengan kegagalan
sumber
Anda dapat melakukan perulangan sementara perintah Anda mengembalikan kesalahan:
sumber