linux之字符串講解

字符串是Shell編程中最經常使用最有用的數據類型,今天就爲你們介紹一下在Shell中的字符串用法,以及Shell中經常使用的字符串操做。linux

Shell字符串用法

Shell中的字符串能夠用引號包起來,也能夠不用引號。web

用引號的話能夠用雙引號,也能夠用單引號。其單雙引號的區別跟PHP相相似。正則表達式

接下來給你們介紹下Shell中字符串單雙引號的區別和用法舉例。編程

加單引號

用法示例windows

str='www.linuxdaxue.com'

加單引號的特色:spa

  • Shell單引號裏的任何字符都會被原樣輸出,單引號字符串中的變量無效;
  • Shell單引號字串中不能出現單引號(對單引號使用轉義符也不行)。

加雙引號

用法示例ci

myweb='linuxdaxue.com'
str="Hello, you are browsing \"$myweb\"! \n"

加雙引號的優勢:字符串

  • Shell雙引號裏能夠有變量
  • Shell雙引號裏能夠出現轉義字符

因此,建議你們在使用Shell時,對字符串要加上引號,並且最好加雙引號。string

Shell字符串的操做

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

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字符串的一些基本概念和經常使用命令,但願你們可以熟練掌握。

相關文章
相關標籤/搜索