快速入門Shell編程(六)變量賦值

變量的意義

我們在使用Linux命令或腳本的時候,會有一些輸出,那麼這些輸出的信息可以用變量臨時存儲,以備我們下一條命令或腳本使用。


變量的定義

變量的定義建議用一個有意義的英文單詞來代表變量,不要使用簡單的字母ab 這類的變量名定義。因爲我們寫好Shell腳本實際上是要給人看的,所以我們定義好的變量,是希望變量有具體的含義,能讓閱讀Shell腳本人能輕鬆的明白。

變量的命名規則:

  • 字母、數字、下劃線
  • 不以數字開頭

變量的賦值

爲變量賦值的過程,稱爲變量替換

Shell腳本里變量是不區分變量類型的

變量賦值的規則:變量名=變量值
var=123
注意:賦值的等號左邊右邊是不能有空格的,如果出現空格那麼執行的時候回進行報錯

[root@lincoding ~]# var=123
[root@lincoding ~]#
[root@lincoding ~]# var =123
-bash: var: command not found
[root@lincoding ~]# var = 123
-bash: var: command not found

因爲出現空格,Shell會認爲前面的是命令而不是變量

使用let爲變量賦值
[root@lincoding ~]# let num=10+10
[root@lincoding ~]# echo $num
20

let可以做簡單的數字運算

將命令賦值給變量
[root@lincoding ~]# ls_cmd=ls
[root@lincoding ~]# ${ls_cmd}
anaconda-ks.cfg  install.log  install.log.syslog

還可以使用把命令賦值給變量,在使用變量的時候,相當於執行命令

將命令結果賦值給變量,使用$()或者``
[root@lincoding ~]# file_list=$(ls /tmp)
[root@lincoding ~]# echo ${file_list}
pear yum.log

[root@lincoding ~]# file_list=`ls /tmp`
[root@lincoding ~]# echo ${file_list}
pear yum.log

使用這種方式的好處,就是避免重複執行相同命令,增加服務器的開銷,而是隻執行一次命令,並把命令的結果保存到變量,做下一步的使用

變量值有空格等特殊字符可以包含在雙引號""和單引號’’
[root@lincoding ~]# var="1 2 3"
[root@lincoding ~]# echo $var
1 2 3

[root@lincoding ~]# var='a b c'
[root@lincoding ~]# echo $var
a b c

當字符串需要雙引號時,需要用單引號來定義字符串

[root@lincoding ~]# var='"a" "b" "c"'
[root@lincoding ~]# echo $var
"a" "b" "c"

當字符串需要單引號時,需要用雙引號來定義字符串

[root@lincoding ~]# var="'a' 'b' 'c'"
[root@lincoding ~]# echo $var
'a' 'b' 'c'

雙引號和單引號還有個區別,就是單引號裏字符串不管是特殊字符都會被解釋成普通的字符串

[root@lincoding ~]# string="${var} , Shell"
[root@lincoding ~]# echo $string
hello , Shell
[root@lincoding ~]# string='${var} , Shell'
[root@lincoding ~]# echo $string
${var} , Shell

小結

在Shell裏變量的定義是不需要定義類型的,變量賦值的時候等號兩邊不能有空格,變量可以賦值Linux的命令,也可以賦值運行Linux命令返回的結果輸出內容,也可以做簡單的數字計算,並雙引號和單引號定義的字符串是有一定的區別的,單引號定義的字符串都會被解釋成普通的字符串,不管是否有特殊字符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章