我正在尝试创建一个简单的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变量的第一个字母,并将其正确地回显到文件中?
答案 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