Shell 脚本:以 table 格式显示网络接口及其对应的 ip 地址
Shell script : Displaying network interface and their corresponding ip address in a table format
我想使用 shell 脚本以 table 格式显示网络接口及其 IP 地址。我有这个代码
#! /bin/bash
interface=$(ifconfig | cut -d ' ' -f1| tr '\n' ' ' | tee save.tmp)
ip=$(ifconfig | awk -F':' '/inet addr/&&!/127.0.0.1/{split(,_," ");print _[1]}')
echo $interface
echo $ip
这段代码的输出是
eth0 vmnet1 vmnet8
10.30.10.226 192.168.142.1 192.168.3.1
我想要这样
eth0 10.30.10.226
vmnet1 192.168.142.1
vmnet8 192.168.3.1
提前致谢
重新排列如下:
for iface in $(ifconfig | cut -d ' ' -f1| tr '\n' ' ')
do
addr=$(ip -o -4 addr list $iface | awk '{print }' | cut -d/ -f1)
printf "$iface\t$addr\n"
done
这是我的 shell 脚本 (希望有帮助) :
#!/bin/bash
clear
echo -e "+-----------+-----------------+\n| Interface | IP Address |\n+-----------+-----------------+"
for iface in $(ip -o -4 addr list | awk '{print }' | tr '\n' ' ')
do
ipaddr=$(ip -o -4 addr list $iface | awk '{print }' | cut -d/ -f1)
printf "|%10s | %-16s|\n" $iface $ipaddr
done
echo "+-----------+-----------------+"
输出:
+-----------+-----------------+
| Interface | IP Address |
+-----------+-----------------+
| lo | 127.0.0.1 |
| enp0s31f6 | 10.10.10.100 |
| wlp61s0 | 10.11.11.111 |
| tun0 | 10.20.20.200 |
+-----------+-----------------+
我想使用 shell 脚本以 table 格式显示网络接口及其 IP 地址。我有这个代码
#! /bin/bash
interface=$(ifconfig | cut -d ' ' -f1| tr '\n' ' ' | tee save.tmp)
ip=$(ifconfig | awk -F':' '/inet addr/&&!/127.0.0.1/{split(,_," ");print _[1]}')
echo $interface
echo $ip
这段代码的输出是
eth0 vmnet1 vmnet8
10.30.10.226 192.168.142.1 192.168.3.1
我想要这样
eth0 10.30.10.226
vmnet1 192.168.142.1
vmnet8 192.168.3.1
提前致谢
重新排列如下:
for iface in $(ifconfig | cut -d ' ' -f1| tr '\n' ' ')
do
addr=$(ip -o -4 addr list $iface | awk '{print }' | cut -d/ -f1)
printf "$iface\t$addr\n"
done
这是我的 shell 脚本 (希望有帮助) :
#!/bin/bash
clear
echo -e "+-----------+-----------------+\n| Interface | IP Address |\n+-----------+-----------------+"
for iface in $(ip -o -4 addr list | awk '{print }' | tr '\n' ' ')
do
ipaddr=$(ip -o -4 addr list $iface | awk '{print }' | cut -d/ -f1)
printf "|%10s | %-16s|\n" $iface $ipaddr
done
echo "+-----------+-----------------+"
输出:
+-----------+-----------------+
| Interface | IP Address |
+-----------+-----------------+
| lo | 127.0.0.1 |
| enp0s31f6 | 10.10.10.100 |
| wlp61s0 | 10.11.11.111 |
| tun0 | 10.20.20.200 |
+-----------+-----------------+