linux,shell学习(七)

[size=large][align=center][b]脚本参数传递[/b][/align][/size]
[b]1.shift命令 2.getopts[/b]
[color=green][b]1.shift[/b][/color]
shift:每次将参数位置向左偏移N位
#!/bin/bash
#opt
usage(){
echo "usage:`basename $0` filenames"
}
totalline=0
if [ $# -lt 2 ]
then
usage
exit
fi
while [ $# -ne 0 ]
do
line=`cat $1 | wc -l`
echo "$1:${line}"
totalline=$[ $totalline+$line]
shift
done
echo "*****************************"
echo "totalline:${totalline}"

[color=green][b]2.getopts[/b][/color]
[b]1、getopts一般格式为:[/b]
getopts option_string variable
ggetopts读取optionstring,获知脚本中使用了有效选项。
getopts查看所有以连字符开头的参数,将其视为选项,如果输入选项,将把这与optionstring对比,如果匹配发现,变量设置为OPTION,如果未发现匹配字符,变量能够设置为?。重复此处理过程直到选项输入完毕。
getopts接收完所有参数后,返回非零状态,意即参数传递成功,变量OPTION保存最后处理参数,一会儿就可以看出处理过程中这样做的好处。
[b]2、使用getopts指定变量取值:[/b]
有时有必要在脚本中指定命令行选项取值getopts为此提供了一种方式,即在optionstring中将一个冒号放在选项后。例如:
getopts ahfvc: OPTION
上面一行脚本指出,选项a、h、f、v可以不加实际值进行传递,而选项c必须取值。使用选项取值时,必须使用变量O P TA R G保存该值。如果试图不取值传递此选项,会返回一个错误信息。错误信息提示并不明确,因此可以用自己的反馈信息屏蔽它,方法如下:将冒号放在optionstring开始部分。
while getopts :ahfgvc: OPTION
在case语句里使用?创建一可用语句捕获错误。
[b]3、getopts使用举例[/b]
#!/bin/ksh
usage()
{
echo `basename $0` [-a] [-b] args
exit 0
}
while getopts "ab:" options
do
case ${options} in
a)
echo "you enter -a as an option"
;;
b)
echo "you enter -b as an option"
echo "/$OPTARG is $OPTARG"
;;
/?)
usage
;;
esac
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值