Bash: Jalankan executable yang memberikan status keluar yang baik


32

Saya ingin menjalankan executable di Linux, dan terlepas dari status keluar yang dikembalikan, saya ingin mengembalikan status keluar yang baik. (mis. tidak ada kesalahan.)

(Ini karena saya menggunakan sh -exdan saya ingin skrip tetap berjalan meskipun satu (spesifik) perintah gagal.)

Jawaban:


47

Cobalah ini:

command || true

Dari man bash:

Shell tidak keluar jika perintah yang gagal adalah bagian dari daftar perintah segera setelah beberapa saat atau sampai kata kunci, bagian dari pengujian mengikuti kata if atau elif yang dilindungi, bagian dari perintah yang dieksekusi dalam daftar && atau ⎪⎪ kecuali perintah yang mengikuti akhir && atau ⎪⎪, perintah apa pun dalam pipa tetapi yang terakhir, atau jika nilai pengembalian perintah dibalik dengan!


juga bagus :)
voretaq7

1

Coba (executable ; exit 0), atau bungkus dengan skrip shell yang selalu keluar 0.


1
Ini berfungsi dengan baik untuk sebagian besar kasus, tetapi membuat subkulit jadi jika, misalnya, (cd foo; exit 0)berhasil, Anda tidak akan berakhir di "foo" setelah itu karena cwd Anda dikembalikan ke yang sebelumnya. Namun, cd foo || trueakan meninggalkan Anda di "foo" jika berhasil.
Dijeda sampai pemberitahuan lebih lanjut.

Poin bagus - jika proses Anda memiliki efek samping tambahan (mengatur variabel lingkungan, mengubah direktori, dll.) ini tidak akan berhasil.
voretaq7
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.