簡(jiǎn)要說(shuō)明
$$
shell本身的PID(ProcessID,即腳本運(yùn)行的進(jìn)程ID號(hào))
$!
shell最后運(yùn)行的后臺(tái)Process的PID
$?
最后運(yùn)行命令的結(jié)束代碼(返回值)
$-
顯示shell使用的當(dāng)前選項(xiàng),與set命令功能相同
$*
所有參數(shù)列表。如果$用“”括起來(lái)的話(huà),以“$1,$2..$n”形式輸出所有參數(shù),此選項(xiàng)參數(shù)可超過(guò)9個(gè)
$@
所有參數(shù)列表。如"$@"用「"」括起來(lái)的情況、以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。$@ 跟$*類(lèi)似,但是可以當(dāng)作數(shù)組用.
$#
添加到Shell的參數(shù)個(gè)數(shù)
$0
Shell本身的文件名
$1~$n
添加到Shell的各參數(shù)值。$1是第1參數(shù)、$2是第2參數(shù)…。
舉例
vim variable.sh
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
保存退出
賦予腳本執(zhí)行權(quán)限
chmod +x variable
執(zhí)行腳本
sh variable.sh aa bb
number:2
scname:./variable
first: aa
second:bb
argume:aa bb
結(jié)果分析
通過(guò)顯示結(jié)果可以看到:
$# 是傳給腳本的參數(shù)個(gè)數(shù)
$0 是腳本本身的名字
$1是傳遞給該shell腳本的第一個(gè)參數(shù)
$2是傳遞給該shell腳本的第二個(gè)參數(shù)
$@ 是傳給腳本的所有參數(shù)的列表
$?返回值問(wèn)題
上次運(yùn)行結(jié)果的返回值
echo $?
執(zhí)行成功返回0,執(zhí)行錯(cuò)誤會(huì)返回其他值。
另:
1,將上次命令執(zhí)行是否成功的返回值放到提示符里面去,命令行執(zhí)行如下代碼:
export PS1="[\$?]${PS1}"
效果如下:
[0][felix@note001 variable.sh]$ (開(kāi)頭是0,說(shuō)明成功)。
2,用perror查看錯(cuò)誤提示
命令行執(zhí)行如下代碼:
perror 2
運(yùn)行結(jié)果:
OS error code 2: No such file or directory
說(shuō)明文件不存在3,給出錯(cuò)誤代碼及其具體原因?qū)φ毡恚?/p>