/opt/app/bin/cfg # ip addr show eth0 up 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 22:05:7f:74:91:04 brd ff:ff:ff:ff:ff:ff inet 192.168.0.113/24 brd 192.168.0.255 scope global eth0 valid_lft forever preferred_lft forever /opt/app/bin/cfg # ip addr show eth0 up | grep -q 192.168.0.113/24 并没有返回真,为什么
时间: 2024-01-29 13:03:07 浏览: 140
这可能是因为 grep 命令的匹配模式不完全匹配导致的。具体来说,grep 命令的匹配模式是基于行的,只有当整行完全匹配时才会返回匹配结果。而在你的命令中,ip addr show eth0 up 命令输出的行中包含了多个 IP 地址,而不仅仅是 192.168.0.113/24。因此,使用 grep -q 192.168.0.113/24 是无法匹配成功的。
要解决这个问题,你可以使用 awk 命令来提取出 eth0 网卡的 IP 地址,并使用 grep -q 来匹配该 IP 地址。具体命令如下:
```
ip addr show eth0 up | awk '/inet / {print $2}' | grep -q 192.168.0.113/24
```
这个命令的作用是先使用 ip addr show eth0 up 命令显示 eth0 网卡的 IP 地址信息,然后使用 awk 命令提取出其中包含 "inet " 的行,并输出第二个字段(即 IP 地址)。接着使用 grep -q 命令来匹配 192.168.0.113/24,如果匹配成功则返回真,否则返回假。
阅读全文