Shell_set用法

set -u

當腳本中遇到未定義的變量時,默認是忽略。

有時候這並不是開發者想要的。

假如有未定義的變量,應該報錯,並且終止腳本繼續運行。

set -u 就可以辦到

示例

#!/usr/bin/env bash
set -u

echo $a
echo shark

執行報錯

$ bash set.sh
set.sh: line 13: a: unbound variable

set -x

這個調試腳本是使用,可以看到每個執行的命令,和執行命令後的輸出結果。

#!/usr/bin/env bash
set -x

echo shark

bash -x set.sh 相同的含義。

set -e

腳本中有任何命令的返回值是非零,腳本則停止繼續執行。

對管道的命令無效,比如:

foo | echo shark

foo 不是 shell 中的命令,執行會報錯,但是其後面有個管道,最終管道後的 echo 命令執行成功了,這種情況下 腳本會繼續執行。

set -o pipefail

如果設置,如果管道中的所有命令都成功退出,則返回零。 默認情況下禁用此選項

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章