Shell指令碼中單引號(‘)和雙引號(“)的使用區別_linux shell

來源:互聯網
上載者:User

在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指令碼時,單引號(‘)就會經常使用到的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.