我最近开始编写BASH脚本,我目前正在尝试使用while循环。但是,当我运行以下代码块时,命令提示符响应:
run.command: line 12: syntax error near unexpected token `done'
run.command: `done'
然后程序关闭。 这是我正在运行的代码。
#!/bin/bash
echo -e "text"
c=false
while true; do
printf ">> "
i=read
if [$i = "exit"]; then
exit
else if [$i = "no"]; then
echo "no"
else
echo -e "Error: $i is undefined"
fi
done
我对while循环做了一些研究,但我的循环语法似乎是正确的。当我在最后删除完成时,发生Unexpected end of file
错误。任何帮助将不胜感激!
答案 0 :(得分:1)
我自己修好了!
#!/bin/bash
echo -e "text"
c=false
while true; do
printf ">> "
read i
if [ "$i" = "exit" ]; then
exit
elif [ "$i" = "no" ]; then
echo "no"
else
echo -e "Error: $i is undefined"
fi
done
答案 1 :(得分:1)
您可以使用read的-p
选项作为提示和case ... esac
构造:
while true; do
read -r -p ">> " i
case "$i" in
"exit") exit 0 ;;
"no") echo "no" ;;
*) echo -e "Error: $i is undefined";;
esac
done