shell腳本中$0,$?,$!、$$、$*、$#、$@等的意義

在shell腳本中,會經常用到變量,對一些常用的變量表達式做個記錄
$$
Shell本身的PID(ProcessID)
$!
Shell最後運行的後臺Process的PID
$?
最後運行的命令的結束代碼(返回值)
$-
使用Set命令設定的Flag一覽
$*
所有參數列表。如"$*“用「”」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
$@
所有參數列表。如"$@“用「”」括起來的情況、以"$1" “2""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: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腳本的第二個參數
$@ 是傳給腳本的所有參數的列表

原文鏈接: Shell腳本中 $0、$?、$!、$$、$*、$#、$@等的意義

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章