特殊shell擴充套件變數
阿新 • • 發佈:2022-05-07
- 這四個擴充套件變數(+,-,=,?),都屬於對變數的值進行判斷、處理
如果parameter變數值為空,返回word字串,賦值給result變數
result=${parameter:-word}
如果parameter變數值為空,則word替代變數值,且返回其值
result=${parameter:=word}
如果para變數為空,word當做stderr輸出,否者輸出變數值
用於設定變數為空導致錯誤時,返回的錯誤資訊
${para:?word}
如果para變數為空,什麼都不做,否則word返回給接受者
${para:+word}
- 實際案例
[root@localhost cahnge_more_file]# res=${name1:-madaha} [root@localhost cahnge_more_file]# echo $res madaha [root@localhost cahnge_more_file]# unset name1 [root@localhost cahnge_more_file]# echo $name1 [root@localhost cahnge_more_file]# res=${name1:=madaha} [root@localhost cahnge_more_file]# echo $res madaha [root@localhost cahnge_more_file]# echo $name1 madaha [root@localhost cahnge_more_file]# unset name1 [root@localhost cahnge_more_file]# ${name1:?} -bash: name1: 引數為空或未設定 [root@localhost cahnge_more_file]# ${name1:?未設定引數啊啊啊啊啊} -bash: name1: 未設定引數啊啊啊啊啊 [root@localhost cahnge_more_file]# unset res [root@localhost cahnge_more_file]# echo $res [root@localhost cahnge_more_file]# res=${name:+madaha} [root@localhost cahnge_more_file]# echo $res madaha # 刪除指定目錄下面某個時間一下的檔案 path=/data/mysql/logs find ${path:=/data/mysql/logs} -name *.tar.gz* -type f -mtime +7 | xargs rm -f