shell?set?-u?和set?+u的具體使用
shell中 ,set -u之后,使用沒有初始化的變量,會導(dǎo)致報錯
set -u: 表示該命令之后,當(dāng)命令使用到未定義過的變量時,腳本直接退出,后續(xù)命令不在執(zhí)行。
我們來試試。
準(zhǔn)備一個腳本t1.sh:
echo "1:$1"
沒有set -u之前,$1存在、不存在都可以,運行不報錯:
$ /bin/bash t1.sh 1: $ /bin/bash t1.sh 2 1:2
/bin/bash -u執(zhí)行腳本相當(dāng)于在子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對當(dāng)前進(jìn)程和子進(jìn)程的影響:
準(zhǔn)備另個一個腳本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只作用于本進(jìn)程,不會作用于子進(jìn)程。
到此這篇關(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-12
局域網(wǎng)遠(yuǎn)程開機(jī)軟件制作代碼分享
局域網(wǎng)遠(yuǎn)程開機(jī)軟件制作代碼分享,大家可以參考使用,要網(wǎng)卡支持,需要gtk+2.0 的庫支持UI2013-12-12
Linux 通過 autojump 命令減少 cd 命令的使用的實現(xiàn)方法
這篇文章主要介紹了Linux 通過 autojump 命令減少 cd 命令的使用的實現(xiàn)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09

