Shell指令碼程式設計 變數

2021-04-27 22:36:57 字數 1521 閱讀 1378

1、變數定義的方法

name=value

name中的規則同c語言,value可以是任何值,如果包含空格,則應該使用「」引起來。

2、訪問變數

$varname

3、定義陣列變數

name[index]=value

這裡的index可以為n,不用從0開始賦值,如我只定義

name[3]=value,則name[0,1,2]都沒有被定義。

另外,如果有變數和陣列變數同名,那麼變數的值就是陣列變數[0]的值。

陣列的第二中賦值方法是name=(value0,value1,..valuen)

上面這種方法是全部賦值給了name[0]

因為在bash中,宣告乙個陣列是declare -a name=(value1 value2 value3),值使用空格隔開。也可以不實用declare -a

還可以指定下標name=([0]=value0,[3]=value1,...)

4、訪問陣列值

$$訪問所有項

$訪問所有項

5、唯讀變數

使用readonly命令,變數可以標記為唯讀,不可改變值。如:

$name=value

$readonly name

6、刪除變數(unset name)

但是不能刪除標記為readonly的變數

8、環境變數

當shell執行時,主要存在三種變數:

區域性變數    環境變數    shell變數

子程序訪問      n        y        y

由使用者設定    n        n        y

由shell設定    n        n        n

使用者可更改    y        y        n

shell要求使用    n        n        y

9、匯出環境變數

命令:export name

也就是將定義的變數匯出為環境變數

sh只支援一種格式,name=value;export name(先定義後匯出)

bash還支援export name=value

export name1,name2,namen,可到處多個變數

10、shell變數

這是shell在初始化和使用過程中設定的變數,使用者可以改變這些變數的值

變數                描述

pwd        指出當前工作目錄

uid   

shlvl        每次由bash的乙個例項所啟動的乙個

增量,可以確exit退出的層數

random    每次被引用時,產生從0——32767之間的

隨機數,可以使用其來產生隨機序列

reply       

seconds    返回shell被啟用後的秒數

ifs        指出語法分析器使用的內部分割符

(internal field separator)

path

home

shell指令碼(變數)

1 定義及賦值 格式 變數名 變數值 等號兩邊沒有空格 2 引用 檢視 變數 格式 變數名 例 title shaodianlingxing echo title 輸出 shaodianlingxing 3 雙引號 功能 允許引用 轉義 例如 echo title group 輸出 shaodian...

shell指令碼 變數

1 shell 指令碼中變數分為三種,區域性變數,環境變數,shell變數。區域性變數 定義在函式內部 基本型別 local num hello world 區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。如果同名,shell函式定義的loc...

shell指令碼變數

環境變數和本地變數,環境變數是具有全域性屬性的。在互動式shell下面定義變數 value 100 這定義的即為本地變數,如果要將其變成環境變數則需要export value 匯出環境變數,取消環境變數則可以使用unset命令。環境變數是可以被子程序繼承的更是可以被子子孫孫都繼承的。環境變數在程式替...