系统无ifconfig,一条命令获取本机ip并将其赋值给指定变量来使用

简介: 在Linux系统中,准确地获取本机IP信息是非常有用的。在写bash shell脚本事经常会用到IP,这时就需要我们使用一些办法获取本机IP并赋值给变量来使用。

在Linux系统中,准确地获取本机IP信息是非常有用的。在写bash shell脚本事经常会用到IP,这时就需要我们使用一些办法获取本机IP并赋值给变量来使用。最近刚刚完成grep及sed的摸索、研究,本着学以致用的原则,用一条命令获取本机IP并将其赋值给某个变量来使用。由于CentOS7.2中已经不再集成ifconfig我们就使用系统自带的ip命令来完成这一系列实验。

一、获取本机IP

[root@GeekDevOps ~]# ip a|grep -w 'inet'|grep 'global'|sed 's/^.*inet //g'|sed 's/\/[0-9][0-9].*$//g'
10.1.1.21
AI 代码解读

在此条命令中,-w指定完全匹配,global进一步限定了范围,后面的两个sed则替换了指定行中的无关部分。此时命令也可以写成:

[root@GeekDevOps ~]# ip a|grep -w 'inet'|grep 'global'|sed 's/.*inet //g'|sed 's/\/[0-9][0-9].*$//g'
AI 代码解读

上面的命令中有一个空格,为了更好地区分开来,写成如下:

[root@GeekDevOps ~]# ip a|grep -w 'inet'|grep 'global'|sed 's/.*inet.//g'|sed 's/\/[0-9][0-9].*$//g'
10.1.1.21
AI 代码解读

二、把指定获取到的值赋给指定变量(两种方法)

[root@GeekDevOps ~]# echo $IP

[root@GeekDevOps ~]# IP=$(ip a|grep -w 'inet'|grep 'global'|sed 's/^.*inet //g'|sed 's/\/[0-9][0-9].*$//g')
[root@GeekDevOps ~]# echo $IP
10.1.1.21
AI 代码解读
[root@GeekDevOps ~]# unset IP
[root@GeekDevOps ~]# echo $IP

[root@GeekDevOps ~]# IP=`ip a|grep -w 'inet'|grep 'global'|sed 's/^.*inet //g'|sed 's/\/[0-9][0-9].*$//g'`
[root@GeekDevOps ~]# echo $IP
10.1.1.21
AI 代码解读
相关文章
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
77 11
使用node.js控制CMD命令——修改本机IP地址
使用node.js控制CMD命令——修改本机IP地址
Ping 命令配置 -c、-i、-w 指令使用
Ping 命令配置 -c、-i、-w 指令使用
588 0
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
121 2
使用shell脚本从ifconfig命令结果中提取IP地址
使用shell脚本从ifconfig命令结果中提取IP地址
192 0
Linux命令参数详细解析-ping
概要 ping [-aAbBdDfhLnOqrRUvV] [-c count] [-F flowlabel] [-i interval] [-I inter‐ face] [-l preload] [-m mark] [-M pmtudisc_op...
1705 0
72、shell正则表达式判断ip地址
1、表达式书写:[2] regex_ip="(2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])(\.(2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])){3}" 意思是 (0-255)(点号  0-255)3次 echo "123.
1575 0
Linux网络管理之hostname命令 – 显示和设置系统的主机名
hostname命令用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。
1147 0
Linux网络管理之hostname命令 – 显示和设置系统的主机名
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等