1. 程式人生 > >Shell基礎知識(四)

Shell基礎知識(四)

span url 其中 name 的區別 取字符 字符串解析 進行 使用

字符串詳解 字符串可以由 單引號/雙引號/無引號 包圍。如下所示 >> str1=hello str2="hello" str3=‘hello‘ << 三種形式的區別: 1)由單引號包圍 字符原樣輸出,不對其中的變量進行解析。並且在字符串中不能出現單引號,即使加了轉義字符也不行。 2)由雙引號包圍 如果字符串中存在變量,那麽會對變量進行解析。可以存在雙引號,只要由轉義字符就行。 3)沒有符號包圍 如果有變量同樣也會被解析,但是不能出現空格,否則,會認為空格後面的內容是其他變量或者字符串解析。 獲取字符串長度 #!/bin/bash str="hello world!" echo ${#str} 字符串拼接
shell中字符串拼接不需要任何操作符,很簡單粗暴。 #!/bin/bash nick_name="mocun" name="yinzm"
str1=$nick_name$name str2="$nick_name $name" str3=$nick_name" : "$name str4="$nick_name : $name" str5="${nick_name} : ${name}"
echo $str1 echo $str2 echo $str3 echo $str4 echo $str5 字符串截取 可以從左邊開始,也可以從右邊開始截取。 #!/bin/bash str="hello,world!" echo ${str:6:5} echo ${str:6} echo ${str:0-6:5} echo ${str:0-6} 輸出:

world

world!

world

world!

shell還支持指定字串進行截取

#!/bin/bash url="https://www.google.com"
echo ${url#*://} echo ${url#*//}

其中#用來指定字符,*為通配符的一種,表示任意長度的字符串。*chars的意思就是忽略左邊的所有字符,直到chars,並且不包含chars。指定字串進行截取不能限定截取長度。

如果在字符串中有多處出現指定的字符,那麽只會在第一次遇到指定字符的時候開始截取。如果想改成最後一次遇到指定字符開始截取,使用##*的方式。如下:

#!/bin/bash url="https://www.google.com"
echo ${url#*w} echo ${url##*w}

輸出:

ww.google.com

.google.com

類似的,也可以截取指定字符左邊的字串。具體語法可以看示例:

#!/bin/bash url="https://www.google.com"
echo ${url%.*} echo ${url%%.*}

輸出:

https://www.google

https://www





Shell基礎知識(四)