选项在 Unix 中不解析为参数
Options not parse as Argument in Unix
我有一个适用于 $1 $2 $3 等的现有脚本。我想添加一个可选参数而不打乱顺序。
我们是否有一些现成的解决方案:
如果找到有效选项(使用 getopts),则不应将此参数索引视为参数。
不 使用 getopts 时的典型方法是循环直到看到第一个非选项项:
while [[ = -* ]]; do
# handle here
shift
done
foo=
bar=
baz=
如果您的选项本身带有参数 (--directory /somewhere
),那么您只需要 shift
一个额外的实例。
通常的解决方法是使用getopts
扫描并处理optional flag选项,然后执行命令:
shift $((OPTIND-1))
当getopts
完成后,$OPTIND
将是第一个尚未处理的参数的编号。 shift
命令然后删除第一个 OPTIND-1
个参数,这有效地将未处理的参数重新编号为 </code>、<code>
、....
我有一个适用于 $1 $2 $3 等的现有脚本。我想添加一个可选参数而不打乱顺序。
我们是否有一些现成的解决方案: 如果找到有效选项(使用 getopts),则不应将此参数索引视为参数。
不 使用 getopts 时的典型方法是循环直到看到第一个非选项项:
while [[ = -* ]]; do
# handle here
shift
done
foo=
bar=
baz=
如果您的选项本身带有参数 (--directory /somewhere
),那么您只需要 shift
一个额外的实例。
通常的解决方法是使用getopts
扫描并处理optional flag选项,然后执行命令:
shift $((OPTIND-1))
当getopts
完成后,$OPTIND
将是第一个尚未处理的参数的编号。 shift
命令然后删除第一个 OPTIND-1
个参数,这有效地将未处理的参数重新编号为 </code>、<code>
、....