Estoy intentando escribir un script bash para mi servidor. Lo que hace este script es ejecutar curl para obtener la dirección IP más reciente de mi casilla y luego enviarme un correo electrónico si es diferente de la dirección IP anterior almacenada en un archivo.
Esto es lo que tengo ahora:
#!/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
Intenté usarlo if; then; else;
también, pero no puedo lograr que el script reaccione de manera diferente cuando las direcciones IP son las mismas.
Creo que el problema surge de mi declaración de variable para $y
.
Respuesta1
Debe dejar espacios entre operandos dentro de los corchetes de prueba [].
#!/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