linux 关于参 变量的总结

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


${ name[*]} ${ name[@]} ${ name[#*/]} ${ name[%%*]} ${ #name[*]} ${ name:-Hello}

在linux的shell里,${name}可以表示变量,也可以表示数组。

name后面加〔〕的,一般是数组,
${name[*]}是数组所有元素(all of the elements)
${name[@]}是数组每一个元素(each of the elements) 
其实这两个几乎一样,差别主要在于当加上引号时,"${name[*]}"等于所有数组元素及其分隔符(一般是空格)排成的字符串,而"${name[@]}"仍然表示每一个元素。
${#name[*]}是数组元素的个数,也可以写成${#name[@]}

${name:-Hello} 是指,如果${name}没有赋值,那么它等于Hello,如果赋值了,就保持原值,不用管这个Hello了。

至于${name[#*/]},好像没有这种写法,可能是弄错了。
${name[%%*]}也不存在。不过,如果是${name##*}就有意义了,不过是空值。如果是在看linux的shell的话,可以在网上找advance bash scripting guide,有中文版的。


原文地址:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值