Mik*_*sen 1 regex linux bash ubuntu awk
我试图使用bash在Debian和Ubuntu系统上获取以太网或wifi适配器的IP地址.我可以使用ifconfig可靠地获取它,但它需要安装net-tools,现在已弃用但它确实有效.
showip=$(ifconfig eth0 | awk -F"[: ]+" '/inet addr:/ {print $4}')
Run Code Online (Sandbox Code Playgroud)
我使用ip route做了一些东西,但它不能一致地工作,有时输出的行根据发行版和版本而不同
MAINIP=$(ip route | awk 'NR==3{print $9}')
GATEWAYIP=$(ip route | awk 'NR==1{print $3}')
SUBNET=$(ip route | awk 'NR==2{print $1}')
Run Code Online (Sandbox Code Playgroud)
有没有办法使用正则表达式grep或awk以确保它有效?
你可以这样做:
MAINIP=$(ip addr show dev eth0 | grep "inet" | awk 'NR==1{print $2}' | cut -d'/' -f 1)
Run Code Online (Sandbox Code Playgroud)
对于子网,您可以:
SUBNET=$(ip route | grep "src $MAINIP" | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)
而对于GW:
GATEWAYIP=$(ip route show | grep default | awk '{print $3}')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
904 次 |
| 最近记录: |