溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell變量替換技術實踐與生產實踐

發(fā)布時間:2020-08-03 11:00:52 來源:網絡 閱讀:316 作者:雨后的春筍 欄目:開發(fā)技術

${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路徑將變?yōu)?tmp/

rm -rf ${path}


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI