shell?set?-u?和set?+u的具體使用
shell中 ,set -u之后,使用沒有初始化的變量,會導(dǎo)致報錯
set -u: 表示該命令之后,當命令使用到未定義過的變量時,腳本直接退出,后續(xù)命令不在執(zhí)行。
我們來試試。
準備一個腳本t1.sh:
echo "1:$1"
沒有set -u之前,$1存在、不存在都可以,運行不報錯:
$ /bin/bash t1.sh 1: $ /bin/bash t1.sh 2 1:2
/bin/bash -u執(zhí)行腳本相當于在子shell中做了set -u,/bin/bash -u xx.sh ,如果$1不存在,則會報錯:
$ /bin/bash -u t1.sh 2 1:2 $ /bin/bash -u t1.sh t1.sh: 行 1: $1: 未綁定的變量
我們試試set +u | set-u對當前進程和子進程的影響:
準備另個一個腳本t2.sh:
#!/bin/bash echo "aaa : $aaa"
運行:
$ set -u $ echo $bbb -bash: bbb: 未綁定的變量 $ ./t2.sh aaa : $ . t2.sh -bash: aaa: 未綁定的變量
$ set +u $ echo $bbb $ ./t2.sh aaa : $ . t2.sh aaa :
可見set +u | set -u只作用于本進程,不會作用于子進程。
到此這篇關(guān)于shell set -u 和set +u的具體使用的文章就介紹到這了,更多相關(guān)shell set -u 和set +u內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本實現(xiàn)監(jiān)控kingate并自動啟動
這篇文章主要介紹了Shell腳本實現(xiàn)監(jiān)控kingate并自動啟動,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2014-12-12Linux 通過 autojump 命令減少 cd 命令的使用的實現(xiàn)方法
這篇文章主要介紹了Linux 通過 autojump 命令減少 cd 命令的使用的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09