1.變數內容的刪除
# (從變數的前端開始將符合的字串刪除(刪除最短的)
## (從變數的前端開始將符合的字串刪除(刪除最長的)
%(從變數的後端開始將符合的字串刪除(刪除最短的)
%%(從變數的後端開始將符合的字串刪除(刪除最長的)
ex.
MAIL=/var/spool/mail/sixchen
去掉檔名,保留目錄名稱
echo ${MAIL%/*}
/var/spool/mail
去掉目錄,只留檔名
echo ${MAIL##/*/}
sixchen
2.變數內容的取代
/a/b #a替換成b(只取代符合的第一個字串)
//a/b #a替換成b(取代所有符合字串)
ex.
path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
將sbin替換成SBIN(只取代找到的第一個)
echo ${path/sbin/SBIN}
path=/usr/local/SBIN:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
將sbin替換成SBIN(取代找到的每一個)
path=/usr/local/SBIN:/usr/local/bin:/usr/SBIN:/usr/bin:/SBIN:/bin:/usr/games
3.測試變數是否存在,若不存在則替換成所要的變數
ex.
unset username
username=${username-1234567}
echo $username
1234567
若此變數存在(含空字元),則不替換
username=${username-123}
echo $username
1234567
若使變數不存在或是存在但為空字元,都可替換
username=""
username=${username-root}
echo $username
#還是空字元
username=${username:-root}
echo $username
root #替換了空字元
username=$username:-123}
echo $username
root #非空字元無法替換
沒有留言:
張貼留言