我正在尝试为我的服务器编写一个 bash 脚本。该脚本的作用是运行 curl 来获取我的机器的最新 IP 地址,然后如果它与文件中存储的旧 IP 地址不同,则给我发送电子邮件。
这就是我现在所拥有的:
#!/bin/bash
#if ip address changes do
x=$(curl -4 "icanhazip.com")
y=$(cat ./oldIP.txt )
if [ "$x"!="$y" ];
then
echo "Current IP Address is $x"
echo "Previous IP address is $y"
# y=$x
elif [ "$x"="$y"]
then
echo "The IP addresses are the same"
fi
#send email to me
我也尝试使用,if; then; else;
但是当 IP 地址相同时,我无法让脚本做出不同的反应。
我相信该问题源于我的变量声明$y
。
答案1
测试括号 [ ] 内的操作数之间必须留空格。
#!/bin/bash
#if ip address changes do
x=$(curl -4 icanhazip.com )
y=$(cat ./oldIP.txt )
if [ "$x" != "$y" ]
then
echo "Current IP Address is $x"
echo "Previous IP address is $y"
# y=$x
else
echo "The IP addresses are the same"
fi
#send email to me