摘抄自:ABS_GUIDE
linux中shell变量$#,$@,$0,$1,$2的含义解释:
变量说明:
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
示例:
<a href="https://s1.51cto.com/wyfs02/M01/94/DA/wKioL1kPEuDgc54uAABBfiTMp-4089.png-wh_500x0-wm_3-wmp_4-s_2734718160.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/94/DA/wKioL1kPEuDCW0RmAAA1UFYw_Us417.png-wh_500x0-wm_3-wmp_4-s_2901113361.png" target="_blank"></a>
其中s@与s*区别:
$* 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
实操:
<a href="https://s4.51cto.com/wyfs02/M01/94/DB/wKioL1kPE1CSyLlJAAApMRCJ9jA554.png-wh_500x0-wm_3-wmp_4-s_2714088596.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/94/DB/wKiom1kPE1DTqKtuAAAe2zqA47E963.png-wh_500x0-wm_3-wmp_4-s_438569513.png" target="_blank"></a>
本文转自飞奔的小GUI博客51CTO博客,原文链接http://blog.51cto.com/9237101/1922945如需转载请自行联系原作者
ziwenzhou