2016-12-19 88 views
0

我怎么能检测服务器的域名,并自动把它输入这样我就可以按回车输入数据自动插入bash脚本读取变量

echo " 
Please enter your domain name : " 
read Domain 
echo $Domain > /root/domain.info 
Hostname=server.$Domain 

谢谢, 克里斯

+1

假设这是一个Linux服务器,而不是微软的Windows,这取决于你的Linux发行版看你是否有环境变量'$ dnsdomainname'或'$ domainname'。如果这样问题解决了。另外看看http://unix.stackexchange.com/questions/38209/how-to-get-the-hostname-along-with-the-domain-name – ron

+1

也可以做一个'if [-z“$ domainname” ]'例如检查是否有域名设置,如果没有则提示用户输入内容。 http://stackoverflow.com/questions/11686208/check-if-environment-variable-is-already-set – ron

回答

0
Hostname=$(uname -n) #or $(hostname -f) 
Nameserver=$(cat /etc/resolv.conf) 

要检查它是否设置为:

if [ -z "$Hostname" ];then 
read -p "Give name " name 
Hostname=$name 
fi 

另请注意,Linux/UNIX附带了fo llowing公用事业显示的主机名/域名:

一个)主机名 - 显示或设定的主机名
B)域名 - 显示或设置NIS/YP域名
c)中dnsdomainname文件 - 显示DNS域名
d)nisdomainname - 显示或设置NIS/YP域名
E)ypdomainname - 显示或设置NIS/YP域名

+0

虽然这确实会得到你的主机名,但ISN的频率非常高:“这个”世界“使用的FQDN到盒子里去。 – ivanivan

0

这听起来像你想当您使用read内置预填充编辑缓冲区

Bash v4 +允许您通过将-e选项(它激活readline库支持)与-i <editBufferDefault>;例如: -

editBufferDefault=$(domainname) # get default value to offer to the user 
read -e -p "Please enter your domain name: " -i "$editBufferDefault"