Bash, если с subshell не работает должным образом

Я пытаюсь автоматизировать выпуск dhclient и новое соединение IPv4, когда соединение не удается, обычно я делаю:

dhclient -r
dhclient -4

Я создал скрипт для автоматизации этого, выполнив команду ping и выполнив оператор if относительно результатов ping.

#!/bin/bash

TEST=1;

while [[ $TEST -ne 0 ]]; do
    if [[ $(ping -c 5 "www.ubuntu.com") -ne 0 ]]; then
        dhclient -r;
        dhclient -4;

    else
        echo "Connection is good";
        TEST=0;
    fi
done

Когда я пытаюсь изменить логику, это не говорит о том, что соединение хорошее, но работает и работает как ложное. Почему это?

#!/bin/bash

TEST=1;

while [[ $TEST -ne 0 ]]; do
    if [[ $(ping -c 5 "www.ubuntu.com") -eq 0 ]]; then
        echo "Connection is good";
        TEST=0;
    else
        dhclient -r;
        dhclient -4;
    fi
done

0 ответов

Другие вопросы по тегам