GNU/Linux >> Belajar Linux >  >> Linux

Bash mengabaikan kesalahan untuk perintah tertentu

Solusinya:

particular_script || true

Contoh:

$ cat /tmp/1.sh
particular_script()
{
    false
}

set -e

echo one
particular_script || true
echo two
particular_script
echo three

$ bash /tmp/1.sh
one
two

three tidak akan pernah dicetak.

Juga, saya ingin menambahkannya saat pipefail aktif, cukup bagi shell untuk berpikir bahwa seluruh pipa memiliki kode keluar bukan nol ketika salah satu perintah dalam pipa memiliki kode keluar bukan nol (dengan pipefail off itu harus yang terakhir).

$ set -o pipefail
$ false | true ; echo $?
1
$ set +o pipefail
$ false | true ; echo $?
0

Cukup tambahkan || true setelah perintah di mana Anda ingin mengabaikan kesalahan.


Jangan berhenti dan simpan juga status keluar

Untuk berjaga-jaga jika Anda ingin skrip Anda tidak berhenti jika perintah tertentu gagal dan Anda juga ingin menyimpan kode kesalahan dari perintah yang gagal:

set -e
EXIT_CODE=0
command || EXIT_CODE=$?
echo $EXIT_CODE

Linux
  1. Kiat bash untuk sehari-hari di baris perintah

  2. Bagaimana Cara Mendapatkan Penyelesaian Bash Untuk Alias ​​​​Perintah?

  3. perintah ekspor bash

  1. Dua kegunaan hebat untuk perintah cp:pintasan Bash

  2. Tujuan Kata Kunci "lakukan" Di Bash For Loops?

  3. Bash Echo Baris Perintah Dieksekusi Di Baris Perintah Itu Sendiri (bukan Dalam Script)?

  1. Bagaimana Cara Menonaktifkan Alias ​​​​Di Bash Untuk Satu Perintah??

  2. Skrip Bash:Menggunakan perintah skrip dari skrip bash untuk mencatat sesi

  3. Mengapa bash tidak berhenti pada kesalahan karena kegagalan dalam urutan perintah hubung singkat?