#!/bin/bash
#Add the hostname
read -p "Please input your hostname:" Hostname
old=`cat /etc/sysconfig/network | grep HOSTNAME | awk -F= '{print $2}'`
sed -i "s/$old/$Hostname/g" /etc/sysconfig/network
echo "The /etc/sysconfig/network has changed,please check:"
echo "========================================="
cat /etc/sysconfig/network
echo "========================================="
ADDR=`ifconfig | grep Bcast | awk '{print $2}' | awk -F: '{print $2}'`
Hostn=`echo $Hostname|awk -F. '{print $1}'`
flage=`grep $ADDR /etc/hosts`
if [ -n "$flage" ];then
sed -i "/^$ADDR/d" /etc/hosts
fi
echo "$ADDR $Hostname $Hostn" >> /etc/hosts
我在测试的过程中,就是标绿色的部门出现了问题,那一步本来是if [ -n "$ADDR" ];then
我一直百思不得其解,原来-n就是字符串大于0,即存在。那么我们想想:它存在,具体是存在在哪里呢,这就是关键,也因此可见flage的重要性,另外$flage
是变量,所以必须加上引号!