Bash

這個 bash“while”語句的 POSIX shell 版本是什麼?

  • December 26, 2020

我正在編寫(或嘗試編寫)一個小程序POSIX sh(遵循 的警告ShellCheck)。

我特別關注關於循環的警告,考慮到雙括號,在 POSIX 中該循環是錯誤的。

你能告訴我POSIX sh這段程式碼的版本是什麼:

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

編寫此條件的符合 POSIX 標準的方法是

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

正如jesse_b所說,如果您正在分析標誌,您可能想要使用getopts(由 POSIX 定義)來代替。

引用自:https://unix.stackexchange.com/questions/624950