在bash终端前显示当前机器的IP地址

需求:日常工作中需要同时操作多台服务器,如果不注意会导致将命令执行在错误的服务器上。

解决办法

1
2
3
4
vim /etc/profile
### echo IP in bash
IP=`awk -F"=" '/IPADDR/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0`
PS1='[\u@$IP \W]\$ '

备注

好多文章写PS1后面接的参数用双引号,但是实际测试中发现使用双引号登录到root环境下,会有问题。

演示如下

1
[root@linux-node1 ~]# IP=`awk -F”=” ‘/IPADDR/{print $2}’ /etc/sysconfig/network-scripts/ifcfg-eth0`

单引号

1
2
[root@linux-node1 ~]# PS1='[\u@$IP \W]\$ ‘
[root@10.0.0.7 ~]#

双引号

1
2
[root@10.0.0.7 ~]# PS1=”[\u@$IP \W]\$ ”
[root@10.0.0.7 ~]$