單引號和雙引號的區別
前面我們還留下一個疑問,定義變量時,變量的值可以由單引號' '
包圍,也可以由雙引號" "
包圍,它們到底有什么區別呢?不妨以下面的代碼為例來說明:
- #!/bin/bash
- url="http://c.biancheng.net"
- website1='C語言中文網:${url}'
- website2="C語言中文網:${url}"
- echo $website1
- echo $website2
運行結果:
C語言中文網:${url}
C語言中文網:http://c.biancheng.net
以單引號' '
包圍變量的值時,單引號里面是什么就輸出什么,即使內容中有變量和命令(命令需要反引起來)也會把它們原樣輸出。這種方式比較適合定義顯示純字符串的情況,即不希望解析變量、命令等的場景。
以雙引號" "
包圍變量的值時,輸出時會先解析里面的變量和命令,而不是把雙引號中的變量名和命令原樣輸出。這種方式比較適合字符串中附帶有變量和命令並且想將其解析后再輸出的變量定義。
我的建議:如果變量的內容是數字,那么可以不加引號;如果真的需要原樣輸出就加單引號;其他沒有特別要求的字符串等最好都加上雙引號,定義變量時加雙引號是最常見的使用場景。