将主机名追加到/ etc / hosts bash

时间:2015-07-24 16:46:29

标签: bash

我正在尝试创建一个简单的bash脚本,它将在我的虚拟机的/ etc / hosts文件中添加一条记录。我已成功使用以下方法成功完成此操作:

echo sed -i '2i127.0.0.1 hostname.whatever.com hostname' /etc/hosts

但我想创建一个要求主机名的脚本,然后动态创建它,例如:

#!/bin/bash

echo "Please enter hostname:"
read hostname
echo sed -i '2i127.0.0.1 $hostname hostname' /etc/hosts

这很好但我也想设置短名称“hostname”。如何在.dot之前获取hostname变量的第一个字母,并将其正确地回显到文件中?

2 个答案:

答案 0 :(得分:4)

参数扩展:

B1

读入数组:

read -p "Please enter hostname: " hostname
echo "${hostname%%.*}"

这两种解决方案都使用本机bash而不需要新的进程。第一个也符合POSIX,所以它适用于/ bin / sh。

答案 1 :(得分:2)

您可以在点cut之前获取名称,如:

$ hostname=hostname.whatever.com
$ shortname=`cut -d. -f1 <<< $hostname`
$ echo $shortname
hostname