Linux 中的變數大致分為四類:使用者自訂變數,環境變數,位置參數變數,預定義變數四類,最常用的是前三類,其中位置參數變數也可以稱為指令碼變數,常用於指令碼中
一 Linux 變數分類
1. 使用者自訂變數: 使用者可以進行CRUD操作, 範圍為當前shell, 指令碼中定義的只能在指令碼中使用
2. 環境變數: 主要儲存的是和系統作業環境相關的變數,可以新增和修改
3. 位置參數變數: 主要是在指令碼被調用的時候,接受指令碼傳遞的參數,所以又可以稱為指令碼變數
4. 預定義變數: 系統的預製的一些變數
二 變數注意事項
1. 變數名詞不能以數字開頭,
2. 變數的類型都是字串型, 要想進行數值運算需要使用$(( 1+2 ))
3. 變數定義=兩邊絕對不能有空格
4. 變數值可以使用特殊符號,轉義符
5. 變數值可以是命令的結果,用反引號或者$()包含命令
6. 環境變數名稱建議全部大寫
三 使用者自訂變數
使用者自訂變數如果在shell視窗中使用,那麼只對當前shell有效,對其子shell無效.
1. 定義: name=value
2. 引用: $name
3. 刪除: unset name
4.查看: set , 會列出所有變數的資訊,包括使用者自訂變數,環境變數,預定義變數
5. 用法樣本:
四 環境變數
環境變數如果再shell視窗中設定,那麼對當前shell和其子shell有效,如果寫入設定檔,那麼對所有shell生效.環境變數通常用於儲存與系統相關的命令.
1. 定義1: export name=value, 定義新的環境變數
定義2: export name, 將使用者自訂變數轉換為環境變數
2. 引用: $name
3. 刪除: unset name
4. 查看: env
5. 用法樣本:
五 預定義變數
1. 預定義變數舉例:
2. 用法樣本
六 位置參數變數
1. 位置變數:
2. 用法樣本:
#!/bin/bash#指令碼中使用位置參數變數的時候,$# 和 "$#"都行,要是想輸出$#檔案則需單引號echo 'num $#:' $#echo 'args $*:' $*echo 'args $@:' $@echo 'cmd $0:' $0echo 'cmd $1:' $1echo 'cmd $2:' $2echo 'cmd $10:' ${10}echo '============== $* ========================'for i in "$*" do echo "arg:" $i doneecho '============== $@ ========================'for y in "$@" do echo "arg:" $y done
3. 輸出結果: