1 min read

bash 錯誤跳出處理

使用bash指令時,當有錯誤時也會繼續執行,有時候想著如果執行錯誤時能自動跳出時,那應該就很棒了!

echo "123"
eavb "456"  <---- 錯誤
echo "789"


基於上述原因,在尋找bash 和 sh 後,發現 bash裡面有指令適合來做這件事情,以下將依序說明,以及提供最後的範例。

#!/bin/bash
set -e
set -o pipefail

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

參數說明

  • set -e :命令失敗時退出腳本
  • set -o pipefail:確保腳本運行中,任何有失敗的指令,都會使腳本失敗並退出
  • DIR: 若需要當前目錄, 使用該變量會自動打印

Example

#!/bin/bash
set -e
set -o pipefail

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

echo "123"
eavb "456"
echo "789"