📜  在变量 linux 中获取 ipaddress - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:37:41.129000             🧑  作者: Mango

在变量 linux 中获取 ipaddress - Shell-Bash

在 Shell 脚本中,有时需要获取当前主机的 IP 地址,以便进行一些网络操作。本文将介绍如何在变量 linux 中获取 IP 地址的方法。

方法一:使用 ifconfig 命令

ifconfig 命令可以查看和配置网络接口,包括获取当前主机的 IP 地址信息。通过解析 ifconfig 命令的输出结果,可以提取出 IP 地址信息并存储到变量中。

#!/bin/bash

# 获取 IP 地址
ip=$(ifconfig | sed -n '2 p' | awk '{print $2}')

echo "本机 IP 地址为:${ip}"

解释如下:

  • ifconfig 命令:查看系统当前网络接口的信息。
  • sed -n '2 p' 命令:提取 ifconfig 命令输出结果的第二行。
  • awk '{print $2}' 命令:提取输出结果中的 IP 地址信息。
方法二:使用 hostname 命令

hostname 命令可以获取当前主机名和域名信息,同时也可以获取主机的 IP 地址信息。

#!/bin/bash

# 获取 IP 地址
ip=$(hostname -I)

echo "本机 IP 地址为:${ip}"

解释如下:

  • hostname -I 命令:获取当前主机的 IP 地址信息。
方法三:使用 ip 命令

ip 命令可以查看和配置网络接口,与 ifconfig 一样,也可以用来获取当前主机的 IP 地址信息。

#!/bin/bash

# 获取 IP 地址
ip=$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)

echo "本机 IP 地址为:${ip}"

解释如下:

  • ip addr show eth0 命令:获取 eth0 网络接口的信息。
  • grep "inet\b" 命令:过滤出 inet 开头的行。
  • awk '{print $2}' 命令:提取输出结果中的 IP 地址信息。
  • cut -d/ -f1 命令:去掉 IP 地址后面的子网掩码信息。

以上三种方法都可以在变量 linux 中获取 IP 地址,具体方法可以根据实际情况选择。