我正在制作一个命令脚本,想知道如何组合多个选项
该命令的一般用法如下:
用法:myCommand [-fpr] [-n 计数] [-s 大小] [-u 用户] [-d 目录]
我的问题是关于 [-fpr] 选项的。如果用户输入 myCommand -fpr 或 myCommand -fp,在 while 循环中,我该如何组合/连接这些选项?
while getopts "fpr" opt; do
case $opt in
f)
echo `-l`
echo "-f was triggered!" >&2
;;
p)
echo `-h`
echo "-p was triggered!" >&2
;;
r)
echo "-r was triggered!" >&2
;;
\?)
echo "Invalid option: -$OPTARG\n" >&2
usage
;;
esac
done
答案1
如果我正确理解了你的问题,你正在试图弄清楚如何处理与-fpr
相同的问题-f -p -r
。在这种情况下,getopts
这样做对你有用。
如果您想使用“长选项”-fpr
并且不希望它与 相同-f -p -r
,那么您需要放弃getopts
,并寻找支持长选项的示例(请注意末尾getopt
缺少)。例如,参见s
http://linux.die.net/man/1/getopt了解详情。