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编程-位置参数和特殊变量_第1张图片

 

效果:

shell编程-位置参数和特殊变量_第2张图片

更多的shell编程我会在下面的文章中陆续的分享,也可以关注‘奇牛学院’

来一起讨论

 

你可能感兴趣的:(shell编程)