Bash脚本:意外标记'else';

Bash脚本:意外标记'else';,bash,syntax-error,Bash,Syntax Error,我正在尝试创建一个简单的脚本来检查我的外部ip地址是否已更改。但是,我不断遇到以下错误: 意外标记“else”附近出现语法错误 这是我的代码: #!/bin/bash DESTDIR=exip.txt PREVIP=$(<$DESTDIR) EXIP=$(dig +short myip.opendns.com @resolver1.opendns.com) echo "External ip checker schript V1.0" echo echo echo "Previous ip

我正在尝试创建一个简单的脚本来检查我的外部ip地址是否已更改。但是,我不断遇到以下错误:

意外标记“else”附近出现语法错误

这是我的代码:

#!/bin/bash
DESTDIR=exip.txt
PREVIP=$(<$DESTDIR)
EXIP=$(dig +short myip.opendns.com @resolver1.opendns.com)
echo "External ip checker schript V1.0"
echo
echo
echo "Previous ip: $PREVIP"
echo
echo "Your current  external ip is $EXIP"
if [ "$PREVIP" == "$EXIP"]:then
 echo "Both IP-adresses are the same"
else
 echo "The IP addresses are diffrent"
 echo "Sending autoremote message.."
 curl "http://autoremotejoaomgcd.appspot.com/sendmessage?key=APA91bEAg6VebS03KS$
 echo "$EXIP" > "$DESTDIR"
fi
#/bin/bash
DESTDIR=exip.txt
PREVIP=$(错误如下:

if [ "$PREVIP" == "$EXIP"]:then
                         ^^
您需要在
[
]
周围添加空格,最后使用分号:

if [ "$PREVIP" == "$EXIP" ]; then
                         ^^^

一般来说,您可以使用一个名为Shellcheck的工具来检查脚本是否存在这些常见错误。它既是命令又是网站,因此您可以将脚本粘贴到其中。

之前使用分号,然后在传递到
curl
的URL末尾添加一个结束引号。感谢您的帮助。现在可以使用了。也谢谢为了链接。