在腳本語言中,字符串的拼接(也稱字符串連接或者字符串合並)往往都非常簡單,例如:
然而,在 Shell 中你不需要使用任何運算符,將兩個字符串並排放在一起就能實現拼接,非常簡單粗暴。請看下面的例子:
運行結果:
Shellhttp://c.biancheng.net/shell/
Shell http://c.biancheng.net/shell/
Shell: http://c.biancheng.net/shell/
Shell: http://c.biancheng.net/shell/
ShellScript: http://c.biancheng.net/shell/index.html
對於第 7 行代碼,$name 和 $url 之間之所以不能出現空格,是因為當字符串不被任何一種引號包圍時,遇到空格就認為字符串結束了,空格后邊的內容會作為其他變量或者命令解析,這一點在《 Shell字符串》中已經提到。
對於第 10 行代碼,加
Shell 這種拼接字符串的方式和 Python 非常類似,Python 既支持用
- 在 PHP 中,使用
.
即可連接兩個字符串; - 在 JavaScript 中,使用
+
即可將兩個字符串合並為一個。
然而,在 Shell 中你不需要使用任何運算符,將兩個字符串並排放在一起就能實現拼接,非常簡單粗暴。請看下面的例子:
- #!/bin/bash
- name="Shell"
- url="http://c.biancheng.net/shell/"
- str1=$name$url #中間不能有空格
- str2="$name $url" #如果被雙引號包圍,那么中間可以有空格
- str3=$name": "$url #中間可以出現別的字符串
- str4="$name: $url" #這樣寫也可以
- str5="${name}Script: ${url}index.html" #這個時候需要給變量名加上大括號
- echo $str1
- echo $str2
- echo $str3
- echo $str4
- echo $str5
Shellhttp://c.biancheng.net/shell/
Shell http://c.biancheng.net/shell/
Shell: http://c.biancheng.net/shell/
Shell: http://c.biancheng.net/shell/
ShellScript: http://c.biancheng.net/shell/index.html
對於第 7 行代碼,$name 和 $url 之間之所以不能出現空格,是因為當字符串不被任何一種引號包圍時,遇到空格就認為字符串結束了,空格后邊的內容會作為其他變量或者命令解析,這一點在《 Shell字符串》中已經提到。
對於第 10 行代碼,加
{ }
是為了幫助解釋器識別變量的邊界,這一點在《
Shell變量》中已經提到。
Shell 這種拼接字符串的方式和 Python 非常類似,Python 既支持用
+
拼接字符串,也支持將兩個字符串放在一起,讀者可以猛擊《
Python字符串》了解詳情。