Mencoba:
my_command || { echo 'my_command failed' ; exit 1; }
Empat perubahan:
- Ubah
&&ke||
- Gunakan
{ }di tempat( )
- Perkenalkan
;setelah exitdan
- 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 cmd2ketika cmd1berhasil (nilai keluar 0). Dimana sebagai
cmd1 || cmd2
akan berjalan cmd2ketika cmd1gagal (nilai keluar bukan nol).
Menggunakan ( )membuat perintah di dalamnya berjalan di sub-shell dan memanggil exitdari 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.