Оператор сравнения Bash всегда верно
Я пытаюсь написать небольшой скрипт для сравнения моего внешнего ip (первые три байта) с приведенным ниже
#!/bin/bash
MYFILE=/home/me/.config/i3/pia
while true
do
IP_EX=$(wget http://ipinfo.io/ip -qO - | cut -d"." -f1,2,3)
if [[ "$IP_EX"=="173.199.65" ]]
then
echo file created
touch $MYFILE
else
echo file deleted
rm -f $MYFILE
fi
echo sleeping
sleep 4
done
Это навсегда возвращает «файл создан», а оператор else никогда не выполняется. Это случай ДАЖЕ, если я заменю $ IP_EX на «что угодно».