位置參數和特殊變量
首先我們先來聊聊 C/C++的命令行參數一遍大家理解shell的位置參數和特殊變量
int main(int argc, char* argv[])
1.argc表示參數的個數 比如 ./a.out do some asldkfj
這樣的話 argc == 3 把 可執行文件 ./a.out 也包含進來了
2.argv表示一個 指針數組 ,數組中的每個元素都是一個指針,每一指針又是 一個 字符串的首地址
這樣的話 argv[0] == "./a.out ", argv[1] == "do some" , argv[2] == "asldkfj" 好 這裏理解的話 我們接下來就開始討論shell的位置參數和特殊變量
在shell編程中
$0 表示 C/C++ main函數 argv[0]
$1 $2 ..... 表示 main函數的 argv[1], argv[2].......
$# 表示main 函數的 argc-1 如果放在上面這個例子的話 就是 2
#@ 表示除$0 之外的 參數列表 "$1", "$2"........例如可以在for循環中 的 in後面加這個
#* 表示除$0 之外的 參數列表 "$1", "$2"........ 同上
#? 表示上一條命令(執行命令的進程)的 結束狀態 (int類型)=》return 0;
$$ 表示當前的進程號
另外!!!位置參數可以用 shift命令左移,比如 shift3 表示 原來的$4 變成現在的 $1 , 原來的$5 變成$2 等等。
這樣原來的$1 $2 $3 丟棄 , $0不懂, 不帶參數的 shift相當於 shift 1例如:
demo
效果:
更多的shell編程我會在下面的文章中陸續的分享,也可以關注‘奇牛學院’
來一起討論