在本小節中,我們將學習在Bash指令碼中使用引號。當希望變數儲存更複雜的值時,就需要使用引號。引號用於處理帶有空格字元的文字和檔案名。這是因為Bash使用空格來確定單獨的專案。
當我們將內容括在引號中時,向Bash指示引號內的內容應視為一個專案。閱讀以下教學範例,了解如何使用單引號或雙引號:
使用簡單的文字和字串時,我們使用單引號或雙引號都不會有任何區別。閱讀以下範例程式碼:
#!/bin/bash
# String in single quote
echo 'Hello User'
echo
# String in double quote
echo "we are learn from tw511.com"
將上面範例程式碼儲存到檔案:quote-with-string.sh,執行後得到以下結果:
maxsu@ubuntu:~/bashcode$ vi quote-with-string.sh
maxsu@ubuntu:~/bashcode$ chmod +x quote-with-string.sh
maxsu@ubuntu:~/bashcode$ ./quote-with-string.sh
Hello User
we are learn from tw511.com
應該注意的是,shell變數擴充套件僅適用於雙引號。如果在單引號中定義變數,則不會將其視為變數。下面通過一個例子來理解這一點:
指令碼
#!/bin/bash
name="You are welcome at yiibai"
echo "$name"
echo '$name'
將上面範例程式碼儲存到檔案:quote-with-variable.sh,執行後得到以下結果:
在這裡,第一個echo
將輸出變數的值,即"You are welcome at yiibai"
。但是第二個echo
將輸出顯示為$name
,這是因為它用單引號引起來。
請看以下範例,以更清楚地了解引號的概念和使用:
#!/bin/bash
echo
echo "When single quote is used with string:"
invitation='Welcome to Yiibai'
echo $invitation
echo
echo "When double quote is used with string:"
invitation="Welcome to Yiibai"
echo $invitation
echo
echo "When variable is used with double quote:"
Remark="Hello User!, $invitation"
echo $Remark
echo
echo "When variable is used with single quote:"
Remark='Hello User!, $invitation'
echo $Remark
echo
將上面範例程式碼儲存到檔案:quote-example.sh,執行後得到以下結果: