在shell编程时.可以使用参数。Shell有位置参数和内部参数
1、 位置参数
由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。
2、 内部参数
上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无。和$0一样的内部变量还有以下几个。
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。以"$1$2$3...$n"输出
$$---Shell本身的pid(Process ID)
$!---Shell最后运行的后台process的pid
$- ---使用set命令设定的Flag一览
$@---所有参数类别 以"$1""$2"..."$n"输出
下面举例进行说明
[root@server tmp]# cat test.sh
#!/bin/bash
#test shell
echo $0
echo $1
echo $2
echo $?
echo $*
echo $#
echo $$
echo $!
echo $-
echo $@
[root@server tmp]# ./test.sh yema Bhanv edu network
./tesh.sh //$0 程序名
yema //$1 第一个参数
Bhanv //$2 第二个参数
0
yema Bhanv edu network
4
22507
hB
cc mm gg