Bash如果子shell没有按预期运行

时间:2017-10-20 21:24:26

标签: bash if-statement dhclient

我正在尝试自动执行 dhclient 版本和新的IPv4新连接,当连接失败时,我通常会这样做:

dhclient -r
dhclient -4

我创建了一个脚本,通过ping和运行相对于ping结果的if语句来自动执行此操作。

#!/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 个答案:

没有答案