虽然找不到循环不等命令

时间:2014-03-25 10:45:05

标签: linux bash variables while-loop

我正在尝试执行一个简单的while循环,将变量与字符串进行比较。它无法加载此行上的错误。错误状态[:missing`]'和:找不到命令。我的while循环看起来像;

mainMenuInput = ""
while ["$mainMenuInput" != "Q" || "$mainMenuInput" != "q"]
do

2 个答案:

答案 0 :(得分:3)

有几个错误:

mainMenuInput="" 
while [ "$mainMenuInput" != "Q" ] && [ "$mainMenuInput" != "q" ]

请参阅变量声明确实需要像var=value。否则,bash将解释您要执行var命令并将=value作为参数:

mainMenuInput="" 
             ^
             no spaces around =

while中,您需要在括号周围放置空格。另请注意,您需要使用&&(和)代替||(或),否则它将不会退出while

while [ "$mainMenuInput" != "Q" ] && [ "$mainMenuInput" != "q" ]
       ^                          ^^                          ^
   space                   it has to be AND               space

事实上,条件可以改写为:

while [[ "$mainMenuInput" != [qQ] ]]

答案 1 :(得分:0)

如果您使用 bash ,我认为正确的语法是:

    while [ $variable -ne "q" || $variable -ne "Q" ];