天天看點

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

前言-----我也是半吊子

用什麼學什麼,沒有系統地或者專門地學習過linux指令及bash腳本,一切動力都是來自web安全

正文

1.linux中的變量

變量是一個很重要的概念,無論是bash腳本還是其他語言,都是如此。在bash中,建立變量很簡單,給變量一個名稱即可。預設情況下,變量的值為空。我們可以通過等号為變量指派。需要注意的是,變量和變量的值不是一個概念。當給定變量一個名稱後,例如myvar,我們需要通過$取得變量的值,即$myvar。使用echo輸出變量的值。

輸出變量的值的格式為:echo $myvar 或者 echo ${myvar}

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

使用變量的時候,需要注意以下幾點:

1. 給變量指派的時候,如果值包含空格,需要用單引号或者雙引号包起來,否則會引起錯誤

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

2. 給變量指派的時候,如果使用單引号,那麼單引号裡面的變量就不會解析成真正的值。使用雙引号則可以

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

3. 可以将一個指令執行的結果賦給一個變量。格式為:myvar=$(command) 或者 `comand`。值得注意的是,務必要将$()和${}的用途分開

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

2.單引号''和雙引号""

兩者都是解決變量中間有空格的問題。

在bash中“空格”是一種很特殊的字元,比如在bash中這樣定義str=this is String,這樣就會報錯,為了避免出錯就得使用單引号''和雙引号""。

單引号'',雙引号""的差別是

單引号''剝奪了所有字元的特殊含義,單引号''内就變成了單純的字元,。

雙引号""則對于雙引号""内的參數替換($)和指令替換(``)是個例外。

比如說 n=3

echo '$n'

結果就是$n

改成雙引号 echo "$n",結果就是3

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

3.反引号``與$()

反引号``是指令替換,指令替換是指Shell可以先執行``中的指令,将輸出結果暫時儲存,在适當的地方輸出。文法:`command`

$()也有指令替換的作用

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量
linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

4.${}與$

${ }中放的是變量,例如echo ${hello}取hello變量的值并列印,也可以不加括号比如$hello。

$的作用相當于引用某變量的值,例如變量myvar,我們需要通過$取得變量的值,即$myvar

linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量
linux中單引号‘ ,雙引号“, 反引号 ` `, $, $(), ${}與變量

更多資料可參考:https://www.cnblogs.com/jonathanlin/p/4063205.html

                            https://blog.csdn.net/lisulong1/article/details/79109296

                             https://blog.csdn.net/c289054531/article/details/9195899