shell?set?-u?和set?+u的具體使用
shell中 ,set -u之后,使用沒有初始化的變量,會(huì)導(dǎo)致報(bào)錯(cuò)
set -u: 表示該命令之后,當(dāng)命令使用到未定義過的變量時(shí),腳本直接退出,后續(xù)命令不在執(zhí)行。
我們來試試。
準(zhǔn)備一個(gè)腳本t1.sh:
echo "1:$1"
沒有set -u之前,$1存在、不存在都可以,運(yùn)行不報(bào)錯(cuò):
$ /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不存在,則會(huì)報(bào)錯(cuò):
$ /bin/bash -u t1.sh 2 1:2 $ /bin/bash -u t1.sh t1.sh: 行 1: $1: 未綁定的變量
我們?cè)囋噑et +u | set-u對(duì)當(dāng)前進(jìn)程和子進(jìn)程的影響:
準(zhǔn)備另個(gè)一個(gè)腳本t2.sh:
#!/bin/bash echo "aaa : $aaa"
運(yùn)行:
$ 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)程,不會(huì)作用于子進(jìn)程。
到此這篇關(guān)于shell set -u 和set +u的具體使用的文章就介紹到這了,更多相關(guān)shell set -u 和set +u內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux獲取系統(tǒng)啟動(dòng)時(shí)間示例詳解
這篇文章主要介紹了linux獲取系統(tǒng)啟動(dòng)時(shí)間的示例,需要的朋友可以參考下2014-02-02Shell腳本實(shí)現(xiàn)監(jiān)控kingate并自動(dòng)啟動(dòng)
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)監(jiān)控kingate并自動(dòng)啟動(dòng),本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-12-12局域網(wǎng)遠(yuǎn)程開機(jī)軟件制作代碼分享
局域網(wǎng)遠(yuǎn)程開機(jī)軟件制作代碼分享,大家可以參考使用,要網(wǎng)卡支持,需要gtk+2.0 的庫(kù)支持UI2013-12-12shell腳本實(shí)現(xiàn)輸入密碼顯示星號(hào)
本文給大家分享使用shell腳本實(shí)現(xiàn)輸入密碼顯示星號(hào)的腳本寫法,在文章末尾給大家補(bǔ)充了shell輸入密碼時(shí)關(guān)閉屏幕回顯的實(shí)現(xiàn)方法,需要的朋友參考下吧2017-01-01shell批量修改主機(jī)密碼的實(shí)現(xiàn)示例
由于機(jī)器數(shù)量眾多,因此采用批量修改密碼的方式來進(jìn)行處理,本文主要介紹了shell批量修改主機(jī)密碼的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12Linux 通過 autojump 命令減少 cd 命令的使用的實(shí)現(xiàn)方法
這篇文章主要介紹了Linux 通過 autojump 命令減少 cd 命令的使用的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09