shell内部参数详解

一、位置参数

位置参数是一种在调用shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,shell取第一个位置参数替换程序文件中的,第二个替换,依次类推。是一个特殊的变量,它的内容是当前这个shell程序的文件名,所以,不是一个位置参数,在显示当前所有的位置参数时是不包括的。

位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分 段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类 推。 After $9, 在位置参数$9之后的参数必须用括号括起来,例如:${10}, ${11}, ${12}。

特殊变量$*和$@ 表示所有的位置参数。

二、内部参数

上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无。 和$0一样的内部变量还有以下几个:
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ...
$0 ----当前程序的名称
$@----以"参数1" "参数2" ... 形式保存所有参数
$$ ----本程序的(进程ID号)PID
$! ----上一个命令的PID

列子1:
if [ -n "$1" ]  #如果$1即参数1不为空,又即存在参数1        # 被测试的变量被双引号引起
    then
   echo "Parameter #1 is $1"  # 使用引号来使#被转义
   fi
if [ -z "$1" ]  #如果$1即参数1为空(零),又即不存在参数1     
    then

   fi 


转载于:https://my.oschina.net/shineyyl/blog/95532

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值