我似乎无法让这件事发挥作用。我需要验证特定卡上的特定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
答案 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 $?