我想在上面显示我的 IP,但我发现了问题:eth0: 获取错误,有人可以帮助我吗
#!/bin/sh
echo "%{F#2495e7} %{F#ffffff}$(/usr/sbin/ifconfig eth0 | grep "inet " | awk '{print $2}')%{u-}"
答案1
您可以使用以下命令查看 IP 地址ip addr show
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enxb827eb315364: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:31:53:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.18/24 brd 192.168.1.255 scope global noprefixroute enxb827eb315364
这里我们有两个接口:lo
带有 IPv4 地址的环回接口127.0.0.1
和enxb827eb315364
带有 IPv4 地址的以太网接口192.168.1.18
。由于该系统不运行 IPv6,因此未列出 IPv6 地址。
如果您想要一个仅包含 IP 地址本身的列表(例如以编程方式处理),您可以使用类似的内容,
ip --json addr show | jq -r '.[] | select(.ifname != "lo") | .addr_info[].local'
192.168.1.18
请注意,即使系统只有一个外部接口,也可能有多个 IP 地址。多个地址(无论是 IPv4 还是 IPv6)将每行列出一个。