Chinaunix首页 | 论坛 | 博客
  • 博客访问: 462312
  • 博文数量: 185
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 681
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-06 21:45
个人简介

为梦而战

文章分类

全部博文(185)

文章存档

2016年(3)

2015年(103)

2014年(79)

我的朋友

分类: LINUX

2014-05-31 14:56:34

一、位置参数位置参数是一种在调用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
阅读(770) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~