转到 if 语句的开头吗?

Ato*_*lan 1 bash if-statement sh

如果用户没有在 bash 和 sh 中提供正确的输入,无论如何要返回到 if 语句的开头?

if [ "$INPUT" = "no" ]; then
    Do something
elif [ "$INPUT" = "yes" ]; then
    Do something else
else
    echo "Input not understood"
    Go back to beginning of if statement
fi
Run Code Online (Sandbox Code Playgroud)

che*_*ner 5

你必须使用循环;bash没有goto声明。

while true; do
  # set the value of INPUT here
  if [ "$INPUT" = "no" ]; then
    Do something
  elif [ "$INPUT" = "yes" ]; then
    Do something else
  else
    echo "Input not understood"
    continue
  fi
  break
done
Run Code Online (Sandbox Code Playgroud)

在这个“无限”循环中,我们使用子句continue中的语句else返回到循环顶部,在这里我们执行一些操作来获取 的新值INPUT。如果我们不执行该else子句,我们就会执行该break语句,该语句将退出循环。