一.概述 這篇介紹shell的變數使用,跟其實語言一樣,都有聲明變數,使用變數,在shell中變數允許你臨時地將信息存儲中shell腳本中,以便和腳本的其他命令一起使用。 1.1 環境變數 在前面章節到了linux系統的環境變數,也可以在腳本中訪問這些值。下麵使用set 命令來查看當前系統的環境變數 ...
一.概述
這篇介紹shell的變數使用,跟其實語言一樣,都有聲明變數,使用變數,在shell中變數允許你臨時地將信息存儲中shell腳本中,以便和腳本的其他命令一起使用。
1.1 環境變數
在前面章節到了linux系統的環境變數,也可以在腳本中訪問這些值。下麵使用set 命令來查看當前系統的環境變數列表:
[root@hsr ~]# set
截圖一小部分,如下所示:
使用echo 在環境變數這前加上美元符($)來使用這些變數,如下圖所示:
如果使用echo輸出的字元串里含有$符號時,要加上返斜杠,不然當作了變數,如下圖所示:
1.2 用戶變數
除了系統環境變數,shell腳本允許在腳本中定義和使用自己的變數。定義變數允許臨時存儲數據併在整個腳本中使用。 用戶變數可以由任何字母,數字,下劃線組成的文本字元串,長度不超過20個,變數區分大小寫。
使用 = 號將值賦組用戶變更,在變更,等號和值之間不能出現空格。shell腳本會自動決定變數值的數據類型,如下圖所示:
在腳本的整個生命周期里, shell腳本中定義的變更會一直保持著它們的值,當shell腳本結束時會被刪除掉。shell腳本中定義變數,重點要註意引用一個變數值時需要使用$符號,如下圖所示:
1.3 命令替換
命令替換在shell編程中處理數據很方便,會經常用到。是指把命令輸出賦給變數,能過$()符號,使用如下圖所示:
下麵來一個例子,通過腳本命令替換獲得當前日期並用它來生成唯一文件名,生成日誌文件路徑與test3腳本文件路徑一致。實現如下圖所示:
總結:註意1:命令替換會由該腳本創建一個獨立的子shell 來運行對應的命令。正因如此,子shell所執行命令是無法使用腳本中所創建的變數的,如下所示, var1變數放入獨立子shell中無法識別。
註意2:在命令行提示符下使用路徑 ./ 運行命令的話,也會創建出子shell。(要運行命令的時候不加入路徑,就會不會創建子shell,有疑點以後再看)。