当前位置: > shell编程 >

shell脚本的参数问题

时间:2016-06-24 01:21来源:linux.it.net.cn 作者:IT
一个简单例子

para.sh
########################
#!/bin/sh
#scriptname:para

echo "this script is call $0"
echo "$0 $1 $2"
echo "The number  of  positionalparameters is $#"

echo "$* is the dollar star"

echo "$@ is the dollar at"

echo " "$*" is the dollar star which has quoation marks"

echo " "$@" is the dollar at which has quoation marks"
################
[root@yqrh5u2]chmod +x para.sh
[root@yqrh5u2 rbf]# ./para.sh  1st_name 2nd_para 3rd_last
this script is call ./para.sh
./para.sh 1st_name 2nd_para
The number  of  positionalparameters is 3
1st_name 2nd_para 3rd_last is the dollar star
1st_name 2nd_para 3rd_last is the dollar at
1st_name 2nd_para 3rd_last is the dollar star which has quoation marks
1st_name 2nd_para 3rd_last is the dollar at which has quoation marks




Positional Parameter    What It References
 
$0          References the name of the script,脚本的名称
 
$#          Holds the value of the number of positional parameters,参数的个数
 
$*           Lists all of the positional parameters,列出所有的参数
 
$@          Means the same as $*, except when enclosed in double quotes
 
"$*"        Expands to a single argument (e.g., "$1 $2 $3"),
 
"$@"       Expands to separate arguments (e.g., "$1" "$2" "$3")
 
$1 .. $9    References up to nine positional parameters,应用对应的参数


 $* and $@ 区别,只有单他们有双引号是才有区别:
 $ set 'apple pie' pears peaches

6   $ for i in $@
    > do
    > echo $i
    > done

    apple
    pie
    pears
    peaches



7   $ set 'apple pie' pears peaches
8   $ for i in "$@"         # At last!!
    > do
    > echo $i
    > done

    apple pie
    pears
    peaches



脚本的参数至少是1,
name=${1:?"requires an argument" }

echo Hello $name
 :? 将会检验$1是否有值,加入没有,脚本退出,并且报错误信息。




(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容