Bash 初學(xué)者系列 2:了解 bash shell 腳本中的變量
如果你使用編程語言編寫過程序,那么一定接觸過變量。而在 bash 腳本的編寫時,變量也是一個很重要的概念。今天我們分享一下如何在 bash 腳本中使用變量。
在 bash shell 腳本中使用變量
在前一篇文章中,我們介紹了如何??在 bash 中寫一個 hello world??:
這是一個很簡單的 hello world,現(xiàn)在我們修改一下,將其變?yōu)橐粋€稍微高級一點(diǎn)的 hello world。
我們在其中定義變量,使用 read 命令接收用戶的輸入,將用戶的輸入賦值給變量:
運(yùn)行上述腳本,系統(tǒng)會提示你輸入名字,然后打印出你輸入的名字,如下所示:
上述腳本的拆解說明
現(xiàn)在我們將上述腳本一行一行的拆解說明。
首先是 shebang 行,以明確說明我們使用的是 bash shell 來運(yùn)行這個腳本。
接下來,提示用戶輸入姓名:
這是一個簡單的 echo 命令,用于打印一行信息到終端。
然后下面,是比較“高級”的地方:
這里,我們使用 read 命令將終端的控制權(quán)從腳本運(yùn)行移交到用戶,以便用戶可以輸入名稱,然后將用戶輸入的內(nèi)容存儲在 name 變量中。
最后,腳本打印出問候信息:
這里需要注意,使用變量的時候,需要在變量名前面加上美元符號 $,以獲取存儲在變量名中的值。如果省略美元符號,會把變量名當(dāng)作普通字符串輸出。這個美元符號在bash腳本中被稱為解引用運(yùn)算符(dereference operator)。
關(guān)于整數(shù)、字符串或者字符,怎樣在 bash shell 中創(chuàng)建不同數(shù)據(jù)類型的變量?
我們再深入了解一下變量。
我們可以使用等號來創(chuàng)建和設(shè)置變量的值。例如,以下行將創(chuàng)建一個名為 age 的變量,并將其值設(shè)置為27:
變量創(chuàng)建以后,可以根據(jù)需要改變它的值:
變量可以保存不同類型的數(shù)據(jù),整數(shù)、字符串或者字符。
bash shell 中的常量
在 bash 中可以創(chuàng)建常量,也就是一個變量值不會改變的變量??梢栽谧兞棵疤砑?readonly 命令來實(shí)現(xiàn):
上面的命令將創(chuàng)建一個常量變量 PI,并將其值設(shè)置為3.14159。這樣不能在腳本中修改 PI 的值,如果嘗試修改的話,會報錯:
命令替換(command substitution)
將命令的輸出存儲到變量中的能力稱為命令替換,這是 bash 最重要的特性之一。
如下命令所示,date 命令的輸出會存儲到變量 TODAY 中,但是需要注意的是,需要將 data 命令放到一對括號中,且前面添加美元符號 $:
或者,也可以將命令括在一對反引號中:
使用反括號是一種比較老的方式,因此我們建議使用括號的方式:
其他
我們了解了命令替換之后,可以在將前面我們寫的 hello world 再完善一下。
在上面的例子中,我們在腳本中讓用戶輸入名字,在這個例子中,我們不要求用戶輸入了,而是使用 whoami 命令獲取當(dāng)前用戶的名稱,如下所示:
只有兩行代碼,很簡潔。運(yùn)行:
以上就是本次分享全部內(nèi)容,歡迎討論。