學習linux的朋友shell不必定要了解多深,可是寫linux腳本的朋友那必須對linux shell瞭如指掌,小猿圈老師從shell基礎提及,讓咱們一塊兒看一下shell變量都有哪些。python
一、本地變量linux
--本地變量是在用戶現有的shell生命週期的腳本中使用shell
--本地變量詳解:用戶經過終端登陸服務器,服務器會建立一個會話期而且啓動一個shell程序,用戶每登陸一次,編程
就會啓動一個shell,因此在一個會話期裏可能會啓動多個shell程序bash
當用戶在shell程序中定義了一個shell變量,該shell變量的生存週期是用戶鏈接到服務器到用戶關閉shell服務器
用戶關閉shell能夠有兩種方法,①切換用戶(切換用戶時,會關閉當前用戶的shell,再次啓動另外一個shell)編輯器
②關閉終端函數
--variablename=value學習
定義本地變量:MYVAR="test" 注意"="左右不要有空格,變量的值必須加上雙引號,數字能夠例外生命週期
使用本地變量$MYVAR 用法:echo $MYVAR 或者 echo ${MYVAR}
--set顯示本地全部的變量
--readonly variablename定義只讀變量
只讀變量不能賦值
二、變量替換(顯示變量)
--用變量的值替換它的名字
--在變量前加$,使用echo命令能夠顯示單個變量的值
--echo ${MYVAR} 或者 echo $MYVAR
--${variablename} 顯示實際值
--${variablename:+value} 若設置了variablename則顯示用戶自定義信息value;若未設置variablename,則顯示空
--${variablename:?value} 若設置了variablename則顯示variablename的值;若未設置variablename,則顯示用戶自定義信息value(相
當於一種提示信息)
--${variablename:-value} 結果同上
--${variablename:=value} 若設置了variablename則顯示variablename的值;若未設置variablename,則設置variablename的值爲用戶
自定義信息value,而且顯示variablename的值
三、標準變量
--bash默認創建了一些標準環境變量,可在/etc/profile中定於
--HOME 屬主目錄
--LOGNAME 登陸用戶名
--TERM 登陸服務器,終端類型vt100
--PATH 標準變量
--PS1(數字1) 提示符
echo $PS1 打印[\u@\h \W]\$
u表明用戶名 h表明主機名 w表明當前目錄
例如:[test@HP-Linux 1]$
--PS2
">" 表示一條命令沒有寫完,自動換行後,shell提示符,"\"是續行符
例子:ls -lt\
> | wc -w
四、環境變量
--環境變量用於全部用戶進程(常常成爲子進程)。登陸進程稱爲父進程。shell中執行的用戶進程均爲子進程。
不像本地變量(只用於如今的 shell),環境變量可用於全部子進程,這包括編輯器、腳本和應用程序。
--$HOME/.bash_profile(/etc/profile,全部用戶都使用profile)
--export 聲明環境變量 export myvar="ttt"
--env 查看環境變量
五、unset
--清除變量
--unset testvar
--readonly變量不能被清除
六、位置變量
--$1
--詳情見 Linux Shell編程一
七、影響變量的命令
--declare 設置或顯示變量
-f 只顯示函數名
-r 建立只讀變量
-x 建立轉出變量
-l 建立整數變量
--shife [n] 總體參數左移n個
八、特殊變量
--$# 傳遞腳本的參數個數(不包含程序自己./runc,這和c語言不一樣)
--$* 全部的參數列表,次選項參數能夠超過9個
--$$ 腳本運行的當前進程ID號
--$| 後臺運行的最後一個進程的進程ID號
--$@ 與$#相同,可是使用時加引號,並愛引號中返回每一個參數
--$- 顯示shell使用的當前選項,與set命令功能相同
--$? 顯示最後命令的退出狀態。0表示沒有錯誤,其餘任何值代表有錯誤
相信你們對shell變量已經有一個深刻的瞭解了,不論是如今是作linux 腳本的編寫的,仍是之後要作這個方向的,那shell必定要好好學習,小猿圈老師對shell變量的詳解就到這,想要了解更多,能夠來小猿圈看一下,一塊兒學習和探討一下。