Mencoba:
my_command || { echo 'my_command failed' ; exit 1; }
Empat perubahan:
- Ubah
&&
ke||
- Gunakan
{ }
di tempat( )
- Perkenalkan
;
setelah exit
dan
- spasi setelah
{
dan sebelumnya}
Karena Anda ingin mencetak pesan dan keluar hanya ketika perintah gagal (keluar dengan nilai bukan nol), Anda memerlukan ||
bukan &&
.
cmd1 && cmd2
akan berjalan cmd2
ketika cmd1
berhasil (nilai keluar 0
). Dimana sebagai
cmd1 || cmd2
akan berjalan cmd2
ketika cmd1
gagal (nilai keluar bukan nol).
Menggunakan ( )
membuat perintah di dalamnya berjalan di sub-shell dan memanggil exit
dari sana menyebabkan Anda keluar dari sub-shell dan bukan shell asli Anda, maka eksekusi berlanjut di shell asli Anda.
Untuk mengatasi ini gunakan { }
Dua perubahan terakhir diperlukan oleh bash.