这个 bash“while”语句的 POSIX shell 版本是什么?

这个 bash“while”语句的 POSIX shell 版本是什么?

我正在编写(或尝试编写)一个小程序POSIX sh(遵循 的警告ShellCheck)。
我特别担心有关循环的警告,在 POSIX 中,由于双括号,该循环将是错误的。

你能告诉我POSIX sh这段代码的版本是什么吗:

 while (( "$#" )); do
    case "$1" in
      [...]
    esac
    shift
 done

答案1

编写此条件的 POSIX 兼容方法是

while [ "$#" -gt 0 ]; do

作为杰西_b说,如果您正在分析标志,您可能需要使用getopts(由 POSIX 定义)。

相关内容