在Linux系統中,對變量進行賦值後需要發現有些問題,需要對變量值進行刪除或替換,本文將針對Linux變量值的替換和刪除做個詳細介紹,希望對你有所幫助。一起去看看吧!
1、變量內容的刪除
[root@bogon ~]# echo ${PATH} #呼叫出PATH變量的值
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH#/*bin:} #看見那個“#”符號,表示從變量“PATH”值的左邊開始向右邊刪除能匹配到“*bin:”的位置,僅刪除能匹配到最短的那個,所以輸出內容如下,“/usr/local/sbin:”被刪除了
/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH#*local/bin:}
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH##/*bin:} #兩個“#”表示刪除能匹配到最長的那個,所以“/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:”全部被刪除
/root/bin
[root@bogon ~]# echo ${PATH%:/*bin} #把上邊的“#”號換成“%”看看,表示從變量“PATH”值的右邊開始向左邊刪除能匹配到“*bin”的位置,僅刪除能匹配到最短的那個,所以“:/root/bin”被刪除
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin
[root@bogon ~]# echo ${PATH%%:/*bin} #兩個“%”與兩個“#”類似的道理
/usr/local/sbin
2、變量內容的替換
[root@bogon ~]# echo ${PATH/sbin/SBIN/} #用“SBIN”替換“sbin”,但只替換第一次匹配到的
/usr/local/SBIN/:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH//sbin/SBIN/} #用“SBIN”替換“sbin”,全局替換
/usr/local/SBIN/:/usr/local/bin:/SBIN/:/bin:/usr/SBIN/:/usr/bin:/usr/local/mysql/bin:/root/bin
變量內容刪除與替換小結:
變量書寫方式功能描述
${變量名稱#匹配字符}若變量內容有被匹配到,剛從變量內容的左邊開刪除,但刪除匹配最短的
${變量名稱##匹配字符}若變量內容有被匹配到,剛從變量內容的左邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式
${變量名稱%匹配字符}若變量內容有被匹配到,剛從變量內容的右邊開刪除,但刪除匹配最短的
${變量名稱%%匹配字符}若變量內容有被匹配到,剛從變量內容的右邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式
${變量稱/舊字符串/新字符串}從變量內容的左邊開始匹配,用新字符串替換舊字符串,僅替換第一個匹配到的字符串
${變量稱//舊字符串/新字符串}從變量內容的左邊開始匹配,用新字符串替換舊字符串,全部替換匹配到的字符串