天天看点

linux的shell变量之传参linux中shell变量$#,$@,$0,$1,$2的含义解释

摘抄自: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

继续阅读