bash while while循环没有退出而没有回显

时间:2013-08-26 15:52:52

标签: linux bash shell terminal while-loop

所以我有这个bash脚本

function exec_do(){
while [[ 1 ]]; do
  read _INPUT
  if [$_INPUT -eq "exit"]
  then
    break
  else
    echo $_INPUT
  fi
done
}

目的是这样,如果我输入exec_do然后它会执行一个while循环,它会读取输入并根据输入执行操作。

如果输入退出,则退出while循环

如果输入没有退出,那么它会回显

然而,当我跑exec_do时 然后输入input 而是返回input: command not found 此外,输入“exit”不会破坏循环并且还会返回未找到的命令

我做错了什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您对_$INPUT的比较是一个字符串,那么您需要==。如果比较整数,则需要-eq。如果字符串可能包含空格或元字符,也可以双引号$_INPUT变量。

#!/bin/bash  

function exec_do(){ 
  while [[ 1 ]]; do  
    read _INPUT
    if[ "$_INPUT" == "exit" ]; then
      break
    else
      echo $_INPUT
    fi 
  done
  }

exec_do