本文是Linux Shell系列教程的第(五)篇,更多shell教程請看:Linux Shell系列教程 字元串是Shell編程中最常用最有用的數據類型,今天,Linux大學網就為大家介紹一下在Shell中的字元串用法,以及Shell中常用的字元串操作。 Shell字元串用法 Shell中的字元串可 ...
本文是Linux Shell系列教程的第(五)篇,更多shell教程請看:Linux Shell系列教程
字元串是Shell編程中最常用最有用的數據類型,今天,Linux大學網就為大家介紹一下在Shell中的字元串用法,以及Shell中常用的字元串操作。
Shell字元串用法
Shell中的字元串可以用引號包起來,也可以不用引號。
用引號的話可以用雙引號,也可以用單引號。其單雙引號的區別跟PHP相類似。
接下來給大家介紹下Shell中字元串單雙引號的區別和用法舉例。
加單引號
用法示例
str='www.linuxdaxue.com'
加單引號的特點:
- Shell單引號里的任何字元都會被原樣輸出,單引號字元串中的變數無效;
- Shell單引號字串中不能出現單引號(對單引號使用轉義符也不行)。
加雙引號
用法示例
myweb='linuxdaxue.com' str="Hello, you are browsing \"$myweb\"! \n"
加雙引號的優點:
- Shell雙引號里可以有變數
- Shell雙引號里可以出現轉義字元
所以,建議大家在使用Shell時,對字元串要加上引號,而且最好加雙引號。
Shell字元串的操作
Shell中對於字元串的操作如下表格所示:
表達式 | 含義 |
---|---|
${#string} | $string的長度 |
${string:position} | 在$string中, 從位置$position開始提取子串 |
${string:position:length} | 在$string中, 從位置$position開始提取長度為$length的子串 |
${string#substring} | 從變數$string的開頭, 刪除最短匹配$substring的子串 |
${string##substring} | 從變數$string的開頭, 刪除最長匹配$substring的子串 |
${string%substring} | 從變數$string的結尾, 刪除最短匹配$substring的子串 |
${string%%substring} | 從變數$string的結尾, 刪除最長匹配$substring的子串 |
${string/substring/replacement} | 使用$replacement, 來代替第一個匹配的$substring |
${string//substring/replacement} | 使用$replacement, 代替所有匹配的$substring |
${string/#substring/replacement} | 如果$string的首碼匹配$substring, 那麼就用$replacement來代替匹配到的$substring |
${string/%substring/replacement} | 如果$string的尾碼匹配$substring, 那麼就用$replacement來代替匹配到的$substring |
Linux Shell常用操作舉例
接下來給大家舉幾個常用操作的例子
1)輸出字元串長度
[linuxdaxue @linuxdaxue ~]$ test='I love china' [linuxdaxue @linuxdaxue ~]$ echo ${#test} 12
${#變數名} 得到字元串長度
2)截取字元串
[linuxdaxue @linuxdaxue ~]$ test='I love china' [linuxdaxue @linuxdaxue ~]$ echo ${test:5} e china [linuxdaxue @linuxdaxue ~]$ echo ${test:5:10} e china
${變數名:起始:長度}得到子字元串
3)字元串的刪除
[linuxdaxue @linuxdaxue ~]$ test='c:/windows/boot.ini' [linuxdaxue @linuxdaxue ~]$ echo ${test#/} c:/windows/boot.ini [linuxdaxue @linuxdaxue ~]$ echo ${test#*/} windows/boot.ini [linuxdaxue @linuxdaxue ~]$ echo ${test##*/} boot.ini [linuxdaxue @linuxdaxue ~]$ echo ${test%/*} c:/windows [linuxdaxue @linuxdaxue ~]$ echo ${test%%/*}
${變數名#substring正則表達式}從字元串開頭開始配備substring,刪除匹配上的表達式。
${變數名%substring正則表達式}從字元串結尾開始配備substring,刪除匹配上的表達式。
註意:${test##*/},${test%/*} 分別是得到文件名,或者目錄地址最簡單方法。
4)字元串的替換
[linuxdaxue@linuxdaxue~]$ test='c:/windows/boot.ini' [linuxdaxue@linuxdaxue~]$ echo ${test/\//\\} c:\windows/boot.ini [linuxdaxue@linuxdaxue~]$ echo ${test//\//\\} c:\windows\boot.ini
${變數/查找/替換值} 一個“/”表示替換第一個,”//”表示替換所有,當查找中出現了:”/”請加轉義符”\/”表示。
好了,以上就是Shell字元串的一些基本概念和常用命令,希望大家能夠熟練掌握。
更多shell教程請看:Linux Shell系列教程
本文固定鏈接:linux大學網--Linux Shell系列教程之(五)Shell字元串