linux中shell变量$#,$@,$0,$1,$2的含义

在进行shell编程的过程中,常常有很多美元符号($)的变量,通过网络查找,整理如下,后续再补充

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参数…。



shell中${0}和${1}这些指什么? 例如echo ${0}为-bash

位置参数
脚本运行时传入的参数(如果是在脚本主体中),或函数调用时传入的参数(如果是在函数体内)。
${0}或$0,表示脚本名称或函数名称。
${1}或$1,表示脚本或函数的第一个参数。

依此类推,一共支持0~9共10个位置参数。




示例

#!/bin/bash

 echo "[echo test]"
 echo "\$\$ : $$"
 echo "\$! : $!"
 echo "\$? : $?"
 echo "\$* : $*"
 echo "\$@ : $@"
 echo "\$# : $#"
 echo "\$0 : $0"
 echo "\$1 : $1"
 echo "\$2 : $2"

 printf "[printf test]\n"
 printf "\$\$ is %s\n" "$$"
 printf "\$! is %s\n" "$!"
 printf "\$? is %s\n" "$?"
 printf "\$* is %s\n" "$*"
 printf "\$@ is %s\n" "$@"
 printf "\$# is %s\n" "$#"
 printf "\$0 is %s\n" "$0"
 printf "\$1 is %s\n" "$1"
 printf "\$2 is %s\n" "$2"

exit 0

[banbanlin@localhost]$ bash shell_params.sh hello 520
[echo test]
$$ : 4776
$! : 
$? : 0
$* : hello 520
$@ : hello 520
$# : 2
$0 : shell_params.sh
$1 : hello
$2 : 520
[printf test]
$$ is 4776
$! is 
$? is 0
$* is hello 520
$@ is hello
$@ is 520
$# is 2
$0 is shell_params.sh
$1 is hello
$2 is 520






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值