我正在尝试学习案例,因为我正在编写一个功能齐全的脚本.
我从下面开始
#!/bin/sh case $@ in -h|--help) echo "You have selected Help" ;; -B|-b) echo "You have selected B" ;; -C|-c) echo "You have selected C" ;; *) echo "Valid Choices are A,B,C" exit 1 ;; esac
我想使用以下两个选项:
./getopts.sh -h -c
但我得到这个结果
有效的选择是A,C
请你帮忙,让我知道我做错了什么?
如果您输入一个选项,但如果输入多个,则需要构建一个脚本,该脚本将执行某些操作.
此外,我将如何解析$1到这个脚本作为surley,我选择我先进入(-h)将是$1?
谢谢!
尝试这个
#!/bin/sh usage() { echo `basename $0`: ERROR: $* 1>&2 echo usage: `basename $0` '[-a] [-b] [-c] [file ...]' 1>&2 exit 1 } while : do case "$1" in -a|-A) echo you picked A;; -b|-B) echo you picked B;; -c|-C) echo you picked C;; -*) usage "bad argument $1";; *) break;; esac shift done