linux - 特定设备的 BASH 特定 IP 地址

标签 linux bash shell

我似乎无法让这个东西工作。我需要验证特定卡上的特定 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/

相关文章:

bash - 使用 sed (或类似的)删除重复模式之间的任何内容

linux - 将多个 SFTP 命令行转换为单行命令行

linux - 为什么在shell脚本中使用ls重定向只写入一个文件名

linux - 我如何在 linux less 中切换模式

c - 如何使用 EOF 将 shell 字符串传递给 c 程序?

mysql - 从文本文件读取 IP 地址到 IPTABLES

bash - 为什么单命令管道不在子 shell 中执行?

linux - 如何执行位于 s3 存储桶上的 bash 脚本?

linux - 如何使用 linux 命令使用递归搜索查找具有给定目录下位置的文件名列表以及精确模式匹配

linux - BASH - 如何将输出 1 和 2 重定向到文件和屏幕?