0
我已经检查了其他人的问题,虽然我遵循给予他们的建议,但我的脚本仍然无法正常工作。Bash if-statement总是触发“然后...”
如果我的脚本获取参数“test”并测试目标是否可达,我想ping一个ip-address。
如果脚本执行时没有命令,我想发送一个WakeOnLan包。
这里是我的代码:
#!/bin/bash
if [ "$1"="test" ];
then
if ping -c 5 -i 1 192.168.178.27; then echo "Desktop is reachable"; else echo "Desktop not (yet) reachable"; fi
else
echo "sending magic package"
sudo wakeonlan FC:AA:14:E7:CD:95
fi
你需要等号周围的空间:'如果[ “$ 1” =“test”]'。 –
我很抱歉在这个平台上发送垃圾邮件。非常感谢!我确定我的支架和条件之间有空格,但我完全忘记了“=”......现在已经搞乱了1个小时。 谢谢,它现在有效! –
@FranzHutterer:语法检查类似POSIX的shell代码的优秀工具是[shellecheck.net](http://shellcheck.net);它会发现你的错误。 – mklement0