Bash - while循环语法错误

时间:2016-07-26 13:35:02

标签: linux bash ubuntu

我是bash脚本的新手,而且我正在尝试学习它。

当我运行此bash代码时:

#!/bin/bash
while true
do
./pokecli.py
echo ">pokecli exited... restarting...";
sleep 5;
done;    

我收到此错误:

opt/PokemonGo-Bot# ./start.sh                         ./start.sh: line 6: syntax error near unexpected token     `done'
./start.sh: line 6: `done;'

感谢任何帮助

2 个答案:

答案 0 :(得分:0)

你有分号,不需要它。此外,为了便于阅读,您应该开始缩进嵌套命令并使其与while相同。此外,“虽然真实”可能是危险的,而“睡觉时”则更好。

#!/bin/bash
while sleep 5; do
   ./pokecli.py
   echo ">pokecli exited... restarting..."
done

然而,据说 - 这些都不会导致错误。很可能你在“do”之前输入了你的do,发表了评论或者(最有可能)一个Windows(或其他特殊)字符,就像^ M等。 dos2unix命令可能会有所帮助,或者运行它。

tr -cd '[:graph:]\n\t ' <start.sh >file.tmp && mv file.tmp start.sh

您必须再次chmod +x脚本。

答案 1 :(得分:-2)

正确的语法是

7.3样本

      #!/bin/bash 
     COUNTER=0
     while [  $COUNTER -lt 10 ]; do
         echo The counter is $COUNTER
         let COUNTER=COUNTER+1 
     done

所以你应该改为

#!/bin/bash
while true; do
  ./pokecli.py
  echo ">pokecli exited... restarting...";
  sleep 5;
done
相关问题