- 论坛徽章:
- 0
|
本帖最后由 hxre 于 2014-10-17 18:16 编辑
- #!/bin/sh
- while getopts ":f:b:" optname
- do
- case "$optname" in
- "f")
- [ -f $OPTARG ] && filename=$OPTARG || {(echo no file && exit 1)}
- ;;
- "b")
- echo display is $OPTARG
- ;;
- "?")
- echo "Unknown option $OPTARG"
- ;;
- ":")
- echo "No argument value for option $OPTARG"
- ;;
- *)
- echo "Unknown error while processing options"
- ;;
- esac
- done
- echo COMMAND
复制代码 请教:利用上面的代码中对参数进行处理,主要有-f 、-b两个参数,其中-f 输入文件名称
我想实现的是:
当取到 -f时判断文件是否存在,如果存在赋值给filename参数,脚本后续继续处理
如果判断文件不存在,直接提示没有这个文件,然后脚本exit 1 退出,不需要再执行后面的命令。
现在问题是exit 1貌似不执行,while外的COMMAND总是可以打印出来,替换成别的命令比如 echo ssss 就可以。
当然直接用if else没问题,不过感觉这样应该也可以实现才对。
不知道是什么原因?- $ sh aa.sh -f aaa.txt
- no file
- COMMAND
复制代码 |
|