在Linux操作系統上編寫Shell腳本時候,我們是在變量的前面使用$符號來獲取該變量的值,通常在腳本中使用”$param”這種帶雙引號的格式,但也有出現使用'$param'這種帶引號的使用的場景,首先大家看一段例子:
復制代碼 代碼如下:
[root@linux ~]# name=TekTea
[root@linux ~]# echo $name
TekTea
[root@linux ~]# sayhello=”Hello $name”
[root@linux ~]# echo $sayhello
Hello TekTea
[root@linux ~]# sayhello='Hello $name'
[root@linux ~]# echo $sayhello
Hello $name
發現了嗎?沒錯!使用了單引號的時候,那 $name將失去原有的變量內容,僅為一般字符的顯示型態而已!這里必需要特別小心在意!
所以,單引號與雙引號的最大不同在于雙引號仍然可以保有變量的內容,但單引號內僅能是一般字符,而不會有特殊符號,我們也可以這里理解:'$sayhello' 與 “\$sayhello”是相同的。
在Shell腳本開發過程中,針對變量的單引號(‘)和雙引號(“)都是有應用場景的,根據我的經驗總結起來就是:
1. 獲取變量值的時候就使用雙引號(“),這是基本用法。
2. 如果是在腳本中要編寫一個新的腳本,同時這個新的腳本中還需要包含變量,你就可以選擇使用單引號(‘)了,特別是生成一個臨時的expect腳本時,單引號(‘)就會經常使用到的。
您可能感興趣的文章:- 每天一個Linux命令之shell單引號和雙引號的經典解釋
- PowerShell中字符串使用單引號和雙引號的區別
- Shell腳本字符串單引號和雙引號的區別淺析
- linux shell中單引號、雙引號、反引號、反斜杠的區別
- shell編程基礎 單引號和雙引號的區別
- Shell雙引號和單引號有哪些不同