1. 程式人生 > >Shell腳本中$0、$?、$!等的意義

Shell腳本中$0、$?、$!等的意義

ria hellip 退出 個人 shel touch sid pid var


變量說明
$$    Shell本身的PID(ProcessID)
$!    Shell最後運行的後臺Process的PID
$?    最後運行的命令的結束代碼(返回值)
$-    使用Set命令設定的Flag一覽
$*    所有參數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
$@    所有參數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。
$#    添加到Shell的參數個數
$0    Shell本身的文件名
$1~$n  添加到Shell的各參數值。$1是第1參數、$2是第2參數…。


腳本舉例
# touch variable
# vi variable
腳本內容如下:
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
保存退出
賦予腳本執行權限
# chmod +x variable
執行腳本
# ./variable aa bb
number:2
scname:./variable
first: aa
second:bb
argume:aa bb


結果分析
通過顯示結果可以看到:
$# 是傳給腳本的參數個數
$0 是腳本本身的名字
$1是傳遞給該shell腳本的第一個參數
$2是傳遞給該shell腳本的第二個參數

$@ 是傳給腳本的所有參數的列表

原文轉自 http://blog.csdn.net/sum_tw https://blog.csdn.net/sum_TW/article/details/52115659, 個人稍作整理

Shell腳本中$0、$?、$!等的意義