Gunakan &&operator,
cmd1 && cmd2 && cmd3
Dalam shellscripting, &&dan ||operator dimodelkan setelah implementasi optimal dari operator logis dalam C. &&berarti DAN operator, dan ||berarti OR. Unix terkait erat dengan C, dan di C, operan kedua dari operator logis tidak dievaluasi jika hasilnya sudah diketahui dari operan pertama. Misalnya "false && x"adalah falseuntuk setiap x, sehingga tidak ada kebutuhan untuk mengevaluasi x(terutama jika xadalah fungsi panggilan); sama untuk "true || x". Ini juga disebut semantik hubungan pendek .
Dan di Unix, adalah tradisional untuk menafsirkan nilai-nilai pengembalian perintah sebagai nilai-nilai kebenaran "berhasil diselesaikan": kode keluar 0 berarti true(berhasil), bukan nol berarti false(kegagalan). Jadi, ketika perintah pertama dalam cmd1 && cmd2pengembalian "false"(status keluar nol, yang menunjukkan kegagalan), status perintah majemuk dikenal: kegagalan. Jadi interpretasi keseluruhan cmd1 && cmd2 mungkin: "jalankan cmd1, DAN LALU, jika tidak gagal, cmd2". Yang pada dasarnya Anda inginkan dalam pertanyaan Anda.
Demikian pula dengan OR: cmd1 || cmd2dapat diartikan sebagai "mengeksekusi cmd1, ATAU JIKA gagal, cmd2".
Protip: untuk rantai yang lebih panjang &&, pertimbangkan untuk memasukkan set -eskrip Anda. Ini pada dasarnya mengubah titik koma ;menjadi &&, dengan beberapa kasus khusus.