Shell變數作用域

2021-09-10 07:44:55 字數 580 閱讀 2111

變數作用域就是變數的有效範圍,shell中變數作用域有三種:

1.全域性變數:在當前shell中任何地方使用的變數。

2.區域性變數:只能在函式內使用的變數。

3.環境變數:可以在任何shell中使用的變數。

在當前shell中任何地方都能使用,不同shell中的全域性變數互不影響,在shell中定義的變數預設為全域性變數。開啟兩個shell視窗,在兩個shell中定義名字相同值不同的變數,然後輸出,兩個shell互不影響。全域性變數的範圍是shell會話(程序)而不是shell指令碼,也就是全域性變數的作用域是其所在程序。

shell中支援自定義函式,與其他語言不同的是,shell中定義的變數預設也是全域性變數,在函式外一樣可以呼叫,想要定義區域性變數,需要在定義時在變數名前加上local命令。這樣定義的變數就是區域性變數,函式外就不能訪問了。

預設情況下變數的作用域是當前shell,如果用export命令將其匯出,那麼此變數在其所有的子shell中也生效,這種變數就是環境變數。環境變數只能向下傳遞,即父shell可以傳遞給子shell,反過來則不行。注意這裡的環境變數不是變數在所有shell中都有效,而是在export變數時的shell的所有子shell中有效。

shell變數作用域

在shell中定義函式可以使 模組化,便於復用 不過指令碼本身的變數和函式 的變數的作用域問題可能令你費解,在這裡梳理一下這個問題。1 shell指令碼中定義的變數是global的,其作用域從被定義的地方開始,到shell結束或 被顯示刪除的地方為止。例1 指令碼變數的作用域 bin bash de...

Shell中指令碼變數的作用域

在shell中定義函式可以使 模組化,便於復用 不過指令碼本身的變數和函式 的變數的作用域問題可能令你費解,在這裡梳理一下這個問題。1 shell指令碼中定義的變數是global的,其作用域從被定義的地方開始,到shell結束或 被顯示刪除的地方為止。例1 指令碼變數的作用域 bin bash de...

作用域,變數作用域,作用域鏈知識

第2章 變數作用域 第3章 作用域鏈 預覽 1.全域性作用域 整個script標籤下 或者是單獨的js檔案 外部js 2.區域性作用域也叫 函式作用域 在函式內部就是區域性作用域 這個 的名字 變數 只在函式內部起作用和效果 3.不同作用域下,定義相同變數名是不衝突的。如果是在同一作用域宣告2個相同...