0

我正在尝试运行一个非常简单的脚本,该脚本读取用户的输入并在用户输入与预期不匹配时不断循环问题。

它正在通过 bash 执行:

echo "Specify a directory [Y/N]?"

read ans
while [ [ "$ans" != "Y" ] || [ "$ans" != "y" ] || [ "$ans" != "N" ] || [ "$ans" != "n" ] ]
do
    echo "$ans is not valid, please answer [Y/N]"
    read ans
done

代码继续......

知道为什么这不起作用吗?这似乎是一个非常直接的循环。

4

1 回答 1

1

那应该工作:

echo "Specify a directory [Y/N]?" 
read ans 
while [ "$ans" != "Y" ] && [ "$ans" != "y" ] && [ "$ans" != "N" ] && [ "$ans" != "n" ]
do
    echo "$ans is not valid, please answer [Y/N]"
    read ans 
done

有几个错误:

  • 你可能在想AND而不是OR
  • [ ]多条件 while 循环没有全局变量
于 2013-04-01T17:45:21.243 回答