我是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;'
感谢任何帮助
答案 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