@kablihin

Почему не срабатывает условие в bash-скрипте?

Есть отрывок bash-скрипта, в котором есть условие IF, но почему-то оно не срабатывает. Возможно я совершил где-то ошибку, не могу разобраться.

for iface in `ls /sys/class/net`; do 
    ip=$(ip addr show $iface | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)
    MAC=$(ip addr show $iface | grep "ether\b" | awk '{print $2}' | cut -d/ -f1) 
    if [["$ip"!="127.0.0.1"]]; then
        echo $iface "  " $ip "  " $MAC
    else 
        echo "sadasdasda"
    fi
done

Вывод в консоли
Информация о сетевых интерфейсах
./lab2.sh: строка 41: [[10.0.2.15!=127.0.0.1]]: команда не найдена
sadasdasda
./lab2.sh: строка 41: [[127.0.0.1!=127.0.0.1]]: команда не найдена
sadasdasda
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Хммм, вроде должны понимать, что [[ - это название утилиты test, и её нужно писать раздельно с аргументами:
if [[ "$ip" != "127.0.0.1" ]]; then
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Почему не срабатывает условие в bash-скрипте?

Потому что не хватает пробелов: вот так [[ "$ip" != "127.0.0.1" ]] будет работать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы