所以我有这个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”不会破坏循环并且还会返回未找到的命令
我做错了什么以及如何解决这个问题?
答案 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