**:
如同ls 命令可以接受目錄等作為它的引數一樣,在shell程式設計時同樣可以使用引數。shell有位置引數和內部引數。
1、 位置引數
由系統提供的引數稱為位置引數。位置引數的值可以用$n得到,n是乙個數字,如果為1,即$1.類似c語言中的陣列,linux會把輸入的命令字串分 段並給每段進行標號,標號從0開始。第0號為程式名字,從1開始就表示傳遞給程式的引數。如$0表示程式的名字,$1表示傳遞給程式的第乙個引數,以此類 推。 after $9, 在位置引數$9之後的引數必須用括號括起來,例如:$, $, $.
特殊變數
2、 內部引數
上述過程中的$0是乙個內部變數,它是必須的,而$1則可有可無。和$0一樣的內部變數還有以下幾個。
$# ----傳遞給程式的總的引數數目
$? ----上乙個**或者shell程式在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程式的所有引數組成的字串。
$n ----表示第幾個引數,$1 表示第乙個引數,$2 表示第二個引數 ...
$0 ----當前程式的名稱
$@----以"引數1" "引數2" ... 形式儲存所有引數
$$ ----本程式的(程序id號)pid
$! ----上乙個命令的pid
列子1:
if [ -n "$1" ] #如果$1即引數1不為空,又即存在引數1 # 被測試的變數被雙引號引起
then
echo "parameter #1 is $1" # 使用引號來使#被轉義
fi if [ -z "$1" ] #如果$1即引數1為空(零),又即不存在引數1
then
fi
Linux之向指令碼傳引數
linux之向指令碼傳引數 之前我們向指令碼傳遞引數可以通過 1,2等特殊變數。很方便,但是有些限制,就是不能超過9個引數。通過使用shift和getopts命令,我們可以十分方便的向指令碼傳遞引數。一 shift 通過使用shift,我們將引數選項從左向右移。看下面這個例子 bin sh shif...
Linux之向指令碼傳引數
linux之向指令碼傳引數 之前我們向指令碼傳遞引數可以通過 1,2等特殊變數。很方便,但是有些限制,就是不能超過9個引數。通過使用shift和getopts命令,我們可以十分方便的向指令碼傳遞引數。一 shift 通過使用shift,我們將引數選項從左向右移。看下面這個例子 bin sh shif...
shell指令碼之傳遞引數(三)
我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 1.指令碼 0 為執行的檔名 bin bash echo shell 傳遞引數例項 echo 執行的檔名 0 echo 第乙個...