歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下變量內容刪除與替換

Linux下變量內容刪除與替換

日期:2017/2/28 14:23:51   编辑: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

變量內容刪除與替換小結:

變量書寫方式 功能描述 ${變量名稱#匹配字符} 若變量內容有被匹配到,剛從變量內容的左邊開刪除,但刪除匹配最短的 ${變量名稱##匹配字符} 若變量內容有被匹配到,剛從變量內容的左邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式 ${變量名稱%匹配字符} 若變量內容有被匹配到,剛從變量內容的右邊開刪除,但刪除匹配最短的 ${變量名稱%%匹配字符} 若變量內容有被匹配到,剛從變量內容的右邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式 ${變量稱/舊字符串/新字符串} 從變量內容的左邊開始匹配,用新字符串替換舊字符串,僅替換第一個匹配到的字符串 ${變量稱//舊字符串/新字符串} 從變量內容的左邊開始匹配,用新字符串替換舊字符串,全部替換匹配到的字符串

Copyright © Linux教程網 All Rights Reserved