我似乎无法让这个东西工作。我需要验证特定卡上的特定 IP 地址。我创建了一个简单的函数,它接收两个变量,设备名称 ($1
) 和 ip 地址 ($2
)。我还需要返回真/假 (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
最佳答案
所以我用了 echo $?它奏效了。我用虚假和真实的网卡/IP 地址进行了测试,并且效果很好。只是为了让人们看到
函数 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 $?
关于linux - 特定设备的 BASH 特定 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47163251/