shell腳本中:單引號和雙引號的區別

單引號和雙引號的區別

前面咱們還留下一個疑問,定義變量時,變量的值能夠由單引號' '包圍,也能夠由雙引號" "包圍,它們到底有什麼區別呢?不妨如下面的代碼爲例來講明:web

  1. #!/bin/bash
  2. url="http://c.biancheng.net"
  3. website1='C語言中文網:${url}'
  4. website2="C語言中文網:${url}"
  5. echo $website1
  6. echo $website2

運行結果:
C語言中文網:${url}
C語言中文網:http://c.biancheng.net

以單引號' '包圍變量的值時,單引號裏面是什麼就輸出什麼,即便內容中有變量和命令(命令須要反引發來)也會把它們原樣輸出。這種方式比較適合定義顯示純字符串的狀況,即不但願解析變量、命令等的場景。

以雙引號" "包圍變量的值時,輸出時會先解析裏面的變量和命令,而不是把雙引號中的變量名和命令原樣輸出。這種方式比較適合字符串中附帶有變量和命令而且想將其解析後再輸出的變量定義。

個人建議:若是變量的內容是數字,那麼能夠不加引號;若是真的須要原樣輸出就加單引號;其餘沒有特別要求的字符串等最好都加上雙引號,定義變量時加雙引號是最多見的使用場景。bash

相關文章
相關標籤/搜索