變數型別:執行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...