您好,登錄后才能下訂單哦!
${value:-word}
如果變量名存在且非null,則返回變量的值,否則返回word字符串。
${value:=word}
如果變量名存在且非null,則返回變量的值,否則,設置這個變量值為word,并返回其值。
${value:?message}
如果變量名存在且非null,則返回變量的值,否則顯示變量名;message,并退出當前的命令或者shell
范例: ${value:?"notdefined"} 如果value未定義,則顯示-bash:value: not defined 并退出。
${value:+word}
如果變量名存在且非null,則返回word,否則返回null。
范例:${value:+word} 如果value已經定義,返回word(也就是真)
1、${value:-word}
當變量未定義或者值為空時候,返回值為word內容,否則返回變量的值
[root@PXE ~]# result=${cmz:-UNSET}#當cmz沒有定義合作和是空會返回UNSET
[root@PXE ~]# echo $result
UNSET
[root@PXE ~]# echo $cmz
==>這里是空。
結論:當cmz沒有內容時候就返回UNSET
[root@PXE ~]# cmz="caimengzhi"
[root@PXE ~]# result=${cmz:-UNSET} #之前必須聲明cmz變量
[root@PXE ~]# echo $result
caimengzhi
結論:當cmz有內容時候就返回cmz的變量內容
這個變量功能可以解決工字符串問題,變量沒有定義。
2、${value:=word}
[root@PXE ~]# result=${test:=UNSET}
[root@PXE ~]# echo $result
UNSET
[root@PXE ~]# echo $test
UNSET
3、${value:?"not defined"}
[root@PXE ~]# result=${lmt:? not defined}
-bash: lmt: not defined
4、${value-word}去掉冒號
也就是說當HTTPD不存在的時候將-后面的/usr/sbin/httpd賦值給等號前面的httpd
對變量的路徑進行操作,最好先判斷路徑是不是非空特別是刪除操作。
path=/server/backup
find ${path:=/tmp/} -name "*.tar.gz" -type f | xargs rrm - f
rm -rf ${path}
一下很重要
[root@PXE shell_scrpit]# vim d.sh
[root@PXE shell_scrpit]# sh -x d.sh
+ find /tmp/ -name '*.tar.gz' -type f
+ xargs rrm - f
xargs: rrm: No such file or directory
+ rm -rf
[root@PXE shell_scrpit]# cat d.sh
#path=/server/backup
find ${path:=/tmp/} -name "*.tar.gz" -type f | xargs rrm - f
#此時path沒有定義 path路徑將變為/tmp/
rm -rf ${path}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。