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.)

Ram Rachum
sumber

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!

Dijeda sampai pemberitahuan lebih lanjut.
sumber
juga bagus :)
voretaq7
1

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

voretaq7
sumber
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