【shell】位置参数和特殊变量$1,$@,$#等

希望各位不要白piao,点个赞或者刷个评论再走,还有【禁止转载】我个人觉得写的比较细,有基础的还是看一下黑体字的部分,因为我觉得还是很容易出错。话不多说讲什么我会先列出来,如果会了可以忽略本文章,省下时间去学习别的知识~
这篇文章就讲位置参数和特殊变量,比如$1,$0,$@。全文很干安心食用,食用后点个赞~~~

位置参数和特殊变量

有很多特殊变量是被Shell自动赋值的,我们已经遇到了$?和$1,现在总结一下:
常用的位置参数和特殊变量

$0  相当于C语言main函数的argv[0]
$1$2...    这些称为位置参数(Positional Parameter),相当于C语言main函数的argv[1]、argv[2]...
$#  相当于C语言main函数的argc - 1,注意这里的#后面不表示注释
$@  表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后面。
$*  表示参数列表"$1" "$2" ...,同上
$?  上一条命令的Exit Status
$$  当前进程号

位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。例如:

    #! /bin/sh
	echo "The program $0 is now running"
    echo "The first parameter is $1"
    echo "The second parameter is $2"
    echo "The parameter list is $@"
    
    shift
    
 	echo "The first parameter is $1"
    echo "The second parameter is $2"
    echo "The parameter list is $@"

所有的释义我都写成了英文哈,英语看不懂我就不负责了,毕竟这基本的于都能力还是要有的~ 奥利给~~~

发布了28 篇原创文章 · 获赞 26 · 访问量 3465

猜你喜欢

转载自blog.csdn.net/weixin_43071838/article/details/104586671