Posted on 2008-10-18 21:40
sailor 閱讀(478)
評論(0) 編輯 收藏 所屬分類:
linux
二、Shell基本語法
shell程序采用$var的形式來引用名為var的變量的值。
Shell有以下幾種基本類型的變量:
shell定義的環境變量;
用戶自定義變量;
位置參數;
預定義變量;
參數置換變量;
1、shell定義的環境變量
shell在開始執行時就已經定義了一些和系統工作環境相關的變量,用戶還可以重新定義這些變量。
HOME 用于保存注冊目錄的完全路徑名;
PATH 用于保存用冒號分割的目錄路徑名;
TERM 終端類型;
UID 當前用戶的識別字,它取的是由數位構成的字符串;
PWD 當前絕對路徑
2、用戶自定義變量
語法:變量名=變量值
在定義變量時,變量名前不需要加$,在引用變量時則在變量名前加$;
在給變量賦值時,等號兩邊一定不能留有空格,若變量本身包含有空格,則整個字符串加“”;
變量名用大寫字母表示,變量名由字母和下劃線組策劃那個,變量名第一個字符不能是數字。
$SUN=sun
$echo ${SUN}day
在應用shell變量時,可以在變量名字兩邊$后面加上{},以便更清楚地顯示給shell。
${variable:-value}
variable是一個變量值,value是變量替換使用的默認值。
第一種賦值:默認賦值
1
$echo Hello $UNAME
2
結果顯示:Hello
1
$echo Hello $
{UNAME: -Sailor}
結果顯示:Hello Sailor
第二種賦值:不但使用默認值進行替換,而且將默認值賦值給該變量
${var:=value}
echo hello ${uname:=sailor}
顯示結果:hello sailor
echo $uname
顯示結果:sailor
第三種變量賦值:只有當變量已賦值時才用制定替換形式:
${var:+value}
$ERROPT=a
$echo ${ERROPT:+'Error tracking is active'}
顯示結果:Error tracking is active
還可以用錯誤檢查的條件進行變量替換
${var:?message}
3、位置參數
$# 位置參數的數量
$* 位置參數的內容
$? 命令執行后返回的狀態
$! 后臺運行的最后一個進程號
$0 當前執行的進程名
$$ 當前進程的進程號
4、參數置換的變量
變量=${參數-word}:如果設置了參數,則用參數的值置換變量的值,否則用word置換。
變量=${參數=word}:如果設置了參數,則用參數的值置換變量的值,否則把變量置換成word,然后再用word替換參數的值。
變量=${參數?word}:如果設置了參數,則用參數的值置換變量的值,否則就顯示word并從shell中退出,如果省略了word,就顯示標準信息。
變量=${參數+word}:如果設置了參數,就用word置換變量,否則不進行置換。
5、位置參數
位置參數是一種在調用shell程序的命令行中按照各自的位置決定的變量,是在程序名之后輸入的參數。位置參數之間用空格分隔,shell取第一個位置參數替換程序文件中的$1,取第二個替換S2,然后依次類推。