變數 shell變數( )

2021-07-13 04:59:18 字數 1738 閱讀 7713

變數型別:執行shell時,會同時存在三種變數

a):區域性變數

在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。

b):環境變數

所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要時shell指令碼也可以定義環境變數。

c):shell變數

shell變數是由shell程式設定的特殊變數。shell變數中有一部分是環境變數,有一部分是區域性變數,這些變數保證了shell的正常執行。

shell 支援自定義變數

定義變數時,變數名不加 $ ,遵循規則如下:

1.首個字元必須為字母(a-z,a-z)

2.中間不能有空格,可以使用下劃線(_)

3.不能使用標點符號

4.不能使用bash裡面的關鍵字。

變數的設定規則:

1.變數與變數內容以乙個 「=」 連線

2.等號兩邊不能直接接空格符。

3.變數內容若有空格符可使用雙引號或單引號將內容結合起來,

雙引號內的特殊字元如 $ 等,可以保持原本的特性。

單引號內的特殊符號則僅為一般字元(純文字)。

4.可用轉義字元「\」將特殊字元(如$ \ 空格 回車 !等)變成一般字元。

5.在一串命令中,還需要通過其他命令提供的資訊,可以使用反單引號「`命令`」或 「$ (命令)」,例如想要取得核心版本的設定:

「version=$ (uname-r)」  再 "echo $version" 可得「2.6.18-128.el5」

6.若該變數為了增加變數內容時,則可用「$變數名稱」或 $ 累加內容。如:path="$path":/home/bin

7.若該變數需要在其他子程式中執行,則需要以  export 來使變數變成環境變數  在我目前這個shell的情況下,去開啟另乙個新的shell,新的shell 就是子程序。

8.通常大寫字元為系統預設變數,自行設定變數使用小寫字元,方便判斷。

顯示變數:echo $變數名

取消變數:unset 變數名

重新定義變數:已定義的變數可以被重新定義

唯讀變數:readonly 變數名  唯讀變數的名不能被改變

使用變數:

使用乙個已經被定義的變數,只要在變數名前加 $ 即可,

如:your_name="tanswer" 

echo $

echo $your_name

花括號是可選的,加花括號是為了幫助直譯器識別變數的邊界。推薦給所有變數都加

shell 特殊變數

1.$$ :表示當前shell程序的id,即pid。

語法:echo $$

2.$0 :當前指令碼的檔名

3.$n :傳遞給指令碼或函式的引數,n是乙個數字,表示第幾個引數。

4.$# :傳遞給函式或指令碼引數的個數

5.$* :傳遞給函式或指令碼的所有引數

6.$? :上個命令的退出狀態,或函式的返回值

7.$@ :傳遞給函式或指令碼的所有引數。

注:$*與$@的區別:

不被雙引號包含時,都以"$1""$2"..."$n"的形式輸出所有引數

被雙引號包含時,$* 會將所有的引數作為乙個整體,以"$1 $2...$n"的形式輸出所有引數;而$@ 會將各個引數分開,  以"$1""$2"..."$n"的形式輸出所有引數。

shell 變數定義 變數賦值

在 shell 中,當第一次使用某變數名時,實際上就定義了這個變數。建立和設定變數的語法 varname varvalue如果沒有給出變數值,則變數會被賦予乙個空字串。注意,在賦值操作符 的周圍不要有任何空格,像下面這三種寫法會報錯 varname varvalue varname varvalue...

Shell 使用Shell變數

變數是乙個字串,我們分配乙個值。分配的值可以是乙個數字,文字,檔名,裝置,或任何其他型別的資料。變數是沒有超過實際資料的指標。shell,可以建立,分配和刪除變數。變數的名稱可以包含只有字母 a到z或a到z 數字 0 9 或下劃線 按照慣例,unix的shell變數將有自己的名稱以大寫字母。下面的例...

Shell 基礎 shell 變數

變數中只能包含字母 數字 下劃線,不能以數字開頭 不能包含bash中的關鍵字 變數賦值時,變數和等號 之間不能有空格 yourname abc 注意變數和 之間不能有空格 使用變數時,需要在變數前加 使用 youname或 例子 新建檔案,檔案內容如下 yourname lisen 變數賦值 ech...