gpt4 book ai didi

linux - 虽然 shell 脚本中的循环说 [ : too many arguments

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:26 26 4
gpt4 key购买 nike

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

它正在通过 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

代码继续....

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

最佳答案

这应该有效:

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 循环没有全局 [ ]

关于linux - 虽然 shell 脚本中的循环说 [ : too many arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15748441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com