字符串是Shell編程中最經常使用最有用的數據類型,今天就爲你們介紹一下在Shell中的字符串用法,以及Shell中經常使用的字符串操做。linux
Shell中的字符串能夠用引號包起來,也能夠不用引號。web
用引號的話能夠用雙引號,也能夠用單引號。其單雙引號的區別跟PHP相相似。正則表達式
接下來給你們介紹下Shell中字符串單雙引號的區別和用法舉例。編程
用法示例windows
str='www.linuxdaxue.com'
加單引號的特色:spa
用法示例ci
myweb='linuxdaxue.com' str="Hello, you are browsing \"$myweb\"! \n"
加雙引號的優勢:字符串
因此,建議你們在使用Shell時,對字符串要加上引號,並且最好加雙引號。string
Shell中對於字符串的操做以下表格所示:it
表達式 | 含義 |
---|---|
${#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 |
接下來給你們舉幾個經常使用操做的例子
[linuxdaxue @linuxdaxue ~]$ test='I love china' [linuxdaxue @linuxdaxue ~]$ echo ${#test} 12
${#變量名} 獲得字符串長度
[linuxdaxue @linuxdaxue ~]$ test='I love china' [linuxdaxue @linuxdaxue ~]$ echo ${test:5} e china [linuxdaxue @linuxdaxue ~]$ echo ${test:5:10} e china
${變量名:起始:長度}獲得子字符串
[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%/*} 分別是獲得文件名,或者目錄地址最簡單方法。
[linuxdaxue@linuxdaxue~]$ test='c:/windows/boot.ini' [linuxdaxue@linuxdaxue~]$ echo ${test/\//\\} c:\windows/boot.ini [linuxdaxue@linuxdaxue~]$ echo ${test//\//\\} c:\windows\boot.ini
${變量/查找/替換值} 一個「/」表示替換第一個,」//」表示替換全部,當查找中出現了:」/」請加轉義符」\/」表示。
好了,以上就是Shell字符串的一些基本概念和經常使用命令,但願你們可以熟練掌握。