我尝试做脚本:
#!/bin/bash
IP='192.168.1.1'
fping -c1 -t300 $IP 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
echo "Host found"
else
echo "Host not found"
fi
然后我转过身来:
pi@raspberrypi ~ $ sh /home/pi/sh/test.sh
/home/pi/sh/test.sh: 9: /home/pi/sh/test.sh: Syntax error: "fi" unexpected (expecting "then")
问题出在哪里?
答案 0 :(得分:8)
你可以尝试
$ dos2unix /home/pi/sh/test.sh
再次运行。
答案 1 :(得分:3)
很可能这是因为脚本中的回车\r
。尝试运行此命令来清理脚本。跑一次将备份原始文件。
perl -pi.bak -e 's/\r$//' /home/pi/sh/test.sh
答案 2 :(得分:1)
if xxx then
commond
fi
语法错误:“ fi”意外(期望“ then”)
尝试:
if xxx
then
commond
fi
没关系。
答案 3 :(得分:0)
如果要在Windows上使用Notepad ++编辑脚本文件,则可以使用以下命令从程序菜单转换EOL
Edit => EOL Conversion => Unix (LF)