希望各位不要白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 $@"
所有的释义我都写成了英文哈,英语看不懂我就不负责了,毕竟这基本的于都能力还是要有的~ 奥利给~~~