由于项目测试经常需要修改hosts文件 将域名定向到内部服务器,所以写了一个简单的小脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
hostname="$2"
hostip="$1"
Hosts="/etc/hosts"

if [[ -n $hostname ]] && [[ -n $hostip ]]
then
echo "delete line " $hostname
#如果之前已存在 则删除
#Mac 下小问题见下参考
#sed -i '' '/'${hostip}'.*'${hostname}'*$/d' $Hosts
sed -ie '/'${hostip}'.*'${hostname}'*$/d' $Hosts
# addhostname为个人所设置关键字 将添加的hostname插入到此行之后
#Mac 下sed插入需要\
sed -ie '/addhostname/ a\
'${hostip}' '${hostname}'
' $Hosts
fi

将此脚本放入$PATH中或者使用来操作alias
sudo addhosts www.test.com 192.168.1.199

参考