Saya suka secara berkala menambahkan beberapa data ke file jarak jauh via ssh
dan menghapusnya secara lokal. Seperti:
cat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt'
rm some_lines_to_append.txt
Sekarang saya ingin memastikan some_lines_to_append.txt
hanya dihapus, jika jalur mana berhasil ditransfer. Bagaimana cara melakukannya?
Apakah >>
membuat semacam kode pengembalian kesalahan dengan sendirinya pada kegagalan, atau apakah cat
dalam kasus ini, dan akan ssh
memberikan kode kembali itu?
Akankah shh
dirinya sendiri memberikan kode pengembalian yang tidak nol dalam setiap kesempatan yang selesai sebelum waktunya?
ssh
akan benar-benar melewati kode pengembalian dari perintah yang dipanggil. Jadi mungkin pipa hanya akan bekerja tanpa menangkap kode pengembalian viaecho $?
danrc=...
?cat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt
akan bekerja lebih baik dari yang pertama kali saya harapkan ...ssh
keluar dengan status keluar dari perintah jarak jauh atau dengan 255 jika terjadi kesalahan. rc = $ (... kode diperlukan ketika perintah jarak jauh yang lebih kompleks dieksekusi dan Anda ingin menangkap beberapa kesalahan di tengah, tetapi dalam kasus Andacat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt || echo 'Error occurred'
sudah cukup.