Linux脚本练习之script034-取出网卡 IP 地址。

script034

题目

取出网卡 IP 地址。

分析

本题考查的知识点:

  • ifconfig 命令
  • grep 命令
  • awk 命令
  • tr 命令
  • mktemp 命令
  • paste 命令
  • echo 命令

思路:

  • 如果是只提取 IP 地址,命令如下:ifconfig | grep "inet\b" | awk '{print $2}'

在这里插入图片描述

  • 如图,提取网卡名:ifconfig | grep -E "^[a-zA-Z0-9]+:" | awk '{print $1}' | tr -d ":"

在这里插入图片描述

  • 我想让它们并列显示,网卡名对应 IP 地址。但是 paste 命令只能从文件中读取进行合并列,所以通过 mktemp 命令创建两个临时文件,将它们放进去,然后使用 paste 命令合并它们并显示。

脚本

#!/bin/bash

####################################
#
# 功能:取出网卡 IP 地址。
#
# 使用:直接执行,不需要任何参数
#
####################################


# 获取所有的网卡名字
name=$(ifconfig | grep -E "^[a-zA-Z0-9]+:" | awk '{print $1}' | tr -d ":")
# 获取所有网卡对应的 IP 地址
ipv4_address=$(ifconfig | grep "inet\b" | awk '{print $2}')

# 为了让网卡名字和 IP 地址并列显示,做了如下操作
# 创建一个用来存储所有网卡名字的临时文件,然后将所有的网卡名字写入临时文件
name_temp_file=$(mktemp -t name.XXXXXX)
echo "$name" > "$name_temp_file"
# 创建一个用来存储所有 IP 地址的临时文件,然后将所有的 IP 地址写入临时文件
ipv4_temp_file=$(mktemp -t ipv4.XXXXXX)
echo "$ipv4_address" > "$ipv4_temp_file"
# 使用 paste 命令以列的方式合并两个文件
paste "$name_temp_file" "$ipv4_temp_file"

测试

执行 ./script034.sh 调用脚本。

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值