shell編程-位置參數和特殊變量

位置參數和特殊變量

首先我們先來聊聊 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編程我會在下面的文章中陸續的分享,也可以關注‘奇牛學院’

來一起討論

 

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