shell脚本选项设置及解析

shell脚本的选项

比较复杂的shell脚本通常都会支持多个选项及其输入. 通常形式为-[a-z,A-Z] [filename/settings]. 在控制台输入脚本名称时,还会显示出帮助信息.

显示帮助

可以定义一个Usage() {}函数作为脚本的帮助函数, 当帮助信息比较简单的时候,可以echo命令实现, 当参数比较多的时候,可以用cat工具配合EOF符号来定义大段的说明文字. 例如:

Usage() 
{ 
	cat <<EOF 
	bet <input> <output> [options]
	-d debug (do not delete temporary intermediate images) 
	EOF  
	exit 1 
} 
# 显示帮助 
[ "$1" = "" ] && Usage

这里bet命令的调用格式定义为:bet <input> <output> [options],这也是一种常见的shell脚本参数格式. 当options比较多的时候,shell脚本没有python里面argpase这样的工具包, 应该如何解析这些参数设置呢? 这时候还是要具体问题具体分析. 实际上,shell脚本对参数的读取和解析也是非常灵活的.

简单的选项参数

如果参数只是类似于-a, -N这种简单的标识符. 可以用简单的if …then … fi 语句解析:

if [ $1 = -a ] ; then 
	 REG="-a" 
	 HOWLONG=5 
fi 

复杂的选项参数

如果参数后面还有具体的配置文件名称或者选项,也就是说 -a, -N这类前缀后续还有具体的设置字符串, 例如参数说明如下:

  -T <minutes>          Estimated job length in minutes, used to auto-set queue name
  -q <queuename>        Possible values for <queuename> are "verylong.q", "long.q" 
                        and "short.q". See below for details
                        Default is "long.q".
  -a <arch-name>        Architecture [e.g., darwin or lx24-amd64]
  -p <job-priority>     Lower priority [0:-1024] default = 0                 
  -M <email-address>    Who to email, default = `whoami`@fmri
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值