BASH特定设备的特定IP地址

时间:2017-11-07 16:47:55

标签: linux bash shell

我似乎无法让这件事发挥作用。我需要验证特定卡上的特定IP地址。我创建了一个简单的函数,它接收两个变量,设备名称($1)和IP地址($2)。我还需要返回true / false(0/1)的值。测试工作正常(我使用调试代码)但返回值始终为空。它需要是一个函数,因为它会被调用几次。我已经尝试了几个返回值的变化似乎都返回空白。这是我最近的一次迭代。

#!/bin/bash

function ip_addr_tst()
{ 
    ip addr show dev $1|fgrep -q "$2"
    if [ $? -eq 0 ]; then
        retval=0
        echo "found"
    else
        retval=1
        echo "not found"
    fi
    return "$retval"
}

answer=$(ip_addr_tst ens192 192.168.2.180)
echo $answer

1 个答案:

答案 0 :(得分:0)

所以我用echo $?它起作用了。我测试了虚假和真实的网卡/ IP地址,它运行得很好。只是这样人们才能看到

function ip_addr_tst() {

ip addr show dev $ 1 | fgrep -q“$ 2”

if [ $? -eq 0 ]; then
    retval=0
    echo "found"
else
    retval=1
    echo "not found"
fi
return "$retval"

}

answer = $(ip_addr_tst ens192 192.168.2.180)

echo $?