您可以在同一个脚本中两次使用 bash“getopts”函数吗?
我有一组选项,根据特定选项的值,这些选项意味着不同的事情。由于我不能保证 getopts 会首先评估该特定选项,所以我想运行 getopts 一次,仅使用该特定选项,然后使用其他选项再次运行它。
是的,之后只需重置 OPTIND。
#!/bin/bash
set -- -1
while getopts 1 opt; do
case "${opt}" in
1) echo "Worked!";;
*) exit 1;
esac
done
OPTIND=1
set -- -2
while getopts 2 opt; do
case "${opt}" in
2) echo "Worked!";;
*) exit 1;
esac
done
Run Code Online (Sandbox Code Playgroud)