如何使用getopt在UNIX中创建多字符参数?

Waf*_*les 17 unix getopt

我正在尝试创建一个getopt命令,这样当我将"-ab"参数传递给脚本时,该脚本会将-ab视为单个参数.

#!/bin/sh
args=`getopt "ab":fc:d $*`
set -- $args
for i in $args
do
case "$i" in
        -ab) shift;echo "You typed ab $1.";shift;;
        -c) shift;echo "You typed a c $1";shift;;
esac
done
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用.有人可以提供任何帮助吗?

pap*_*ika 12

getopt不支持你要找的东西.您可以使用单字母(-a)或长选项(--long).类似的东西-ab的处理方式与-a b:a带参数的选项b.请注意,长选项以两个破折号为前缀.

  • 那么你能告诉我们如何使用“--long”来做到这一点吗? (3认同)

gho*_*g74 -5

getopt 支持长格式。您可以搜索 SO 来查找此类示例。例如,请参见此处

  • 您能举个例子来说明如何使用它吗? (5认同)