抱歉UNIX新手。我有一个在我的NAS上运行的脚本,它只是检查我的IP是什么,并运行一个脚本来重新连接VPN它是否已经改变。
注意:我已将下面IP中的前四个数字更改为“x”,对于此示例,我知道它们需要反映我的真实IP地址。
#!/bin/sh
YOUR_IP="$(w3m -dump http://checkip.dyndns.org)"
echo "Current ip:" "$YOUR_IP"
if [ "$YOUR_IP" == "Current IP Address: XX.XX.148.73" ]
then
echo "UP VPN is active :)"
else
echo "DOWN VPN is disconnect :("
sh /opt/etc/init.d/S20openvpn restart
fi
echo "$(date +"%d / %m / %Y")"
echo "$(date +"%H : %M : %S")"
echo "------------------------"
exit
任何人都可以告诉我为什么if else声明没有运行。在我的日志中,我得到了以下内容。我猜这个陈述必须是错误的,否则它会回应一些东西,而目前它并没有。它可能只是一个语法错误,或者w3m -dump在if else运行之前没有得到结果put我不知道足够的UNIX来调试。任何帮助都会很棒。
Current ip: Current IP Address: XX.XX.148.73
16 / 05 / 2012
18 : 50 : 01
答案 0 :(得分:1)
两种解决方法:
此SO问题提供了更多信息/背景[ :Unexpected operator in shell programming