Saya ingin melakukan sesuatu seperti ini:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Bagaimana saya harus melakukannya?
bash
shell-script
exit-status
michelemarcon
sumber
sumber
Jawaban:
Ini harus melakukan apa yang Anda butuhkan:
atau
sumber
||
tidak melihat output dariecho
perintah pertama .Just try whoami && whoami && echo success || echo epic fail
dan sekarangwhoami && whoareyou && echo success || echo epic fail
. Saya tidak tahu apa yang Anda maksud dengan "tidak melihat output dari perintah gema pertama"cmd1 && cmd2
Petr Uzel sangat cocok tetapi Anda juga bisa bermain dengan sihir $ ?.
$? memegang kode keluar dari perintah terakhir yang dijalankan, dan jika Anda menggunakan ini, Anda dapat menulis skrip Anda cukup fleksibel.
Pertanyaan ini sedikit menyentuh topik ini, Praktik terbaik untuk menggunakan $? di bash? .
Kemudian Anda juga dapat bereaksi terhadap kode keluar yang berbeda dan melakukan hal-hal yang berbeda jika Anda suka.
sumber
Kode semu dalam pertanyaan tidak sesuai dengan judul pertanyaan.
Jika ada yang perlu benar-benar tahu cara menjalankan perintah 2 jika perintah 1 gagal, ini adalah penjelasan sederhana:
cmd1 || cmd2
: Ini akan berjalancmd1
, dan jika terjadi kegagalan akan berjalancmd2
cmd1 && cmd2
: Ini akan berjalancmd1
, dan jika berhasil akan berjalancmd2
cmd1 ; cmd2
: Ini akan berjalancmd1
, dan kemudian akan berjalancmd2
, terlepas dari kegagalan atau keberhasilan menjalankancmd1
.sumber