linux $# $0 $1 $2 $@ $* $$ $?的含義

hurp_oracle發表於2015-01-13
我們先寫一個簡單的指令碼,執行以後再解釋各個變數的意義
 
# touch variable
# vi variable
 
指令碼內容如下:
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"
儲存退出
 
賦予指令碼執行許可權
 
# chmod +x variable
 
執行指令碼
 
# ./variable aa bb
number:2
scname:./variable
first:aa
second:bb
argume:aa bb
show parm list:aa bb
show process id:24544
show precomm stat:0
 
透過顯示結果可以看到:
 
$# 是傳給指令碼的引數個數
$0 是指令碼本身的名字
$1 是傳遞給該shell指令碼的第一個引數
$2 是傳遞給該shell指令碼的第二個引數
$@ 是傳給指令碼的所有引數的列表
$* 是以一個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,引數可超過9個
$$ 是指令碼執行的當前程式ID號
$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其他表示有錯誤

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-1400357/,如需轉載,請註明出處,否則將追究法律責任。

相關文章