咱們先寫一個簡單的腳本,執行之後再解釋各個變量的意義
# touch test.sh
# vi test.sh
腳本內容以下:
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"shell
echo "third:$3"
ide
echo "fourth:$4"spa
echo "fifth:$5"進程
echo "sixth:$6"字符串
echo "seventh:$7"it
echo "eighth:$8"event
echo "ninth:$9"class
echo "argume:$@"
test
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"
保存退出
賦予腳本執行權限
# chmod +x variable
執行腳本
# ./variable aa bb cc dd ee ff gg hh ii
number:9
scname:./variable.sh
first :aa
second:bb
third:cc
fourth:dd
fifth:ee
sixth:ff
senventh:gg
eighth:hh
ninth:ii
argume:aa bb cc dd ee ff gg hh ii
show parm list:aa bb cc dd ee ff gg hh ii
show process id:1635
show precomm stat: 0
經過顯示結果能夠看到:
$# 是傳給腳本的參數個數
$0 是腳本自己的名字
$1 是傳遞給該shell腳本的第一個參數
$2 是傳遞給該shell腳本的第二個參數
.......
$@ 是傳給腳本的全部參數的列表
$* 是以一個單字符串顯示全部向腳本傳遞的參數,與位置變量不一樣,參數可超過9個
$$ 是腳本運行的當前進程ID號
$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其餘表示有錯誤