我怎么能检测服务器的域名,并自动把它输入这样我就可以按回车输入数据自动插入bash脚本读取变量
echo "
Please enter your domain name : "
read Domain
echo $Domain > /root/domain.info
Hostname=server.$Domain
谢谢, 克里斯
我怎么能检测服务器的域名,并自动把它输入这样我就可以按回车输入数据自动插入bash脚本读取变量
echo "
Please enter your domain name : "
read Domain
echo $Domain > /root/domain.info
Hostname=server.$Domain
谢谢, 克里斯
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域名
虽然这确实会得到你的主机名,但ISN的频率非常高:“这个”世界“使用的FQDN到盒子里去。 – ivanivan
这听起来像你想当您使用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"
假设这是一个Linux服务器,而不是微软的Windows,这取决于你的Linux发行版看你是否有环境变量'$ dnsdomainname'或'$ domainname'。如果这样问题解决了。另外看看http://unix.stackexchange.com/questions/38209/how-to-get-the-hostname-along-with-the-domain-name – ron
也可以做一个'if [-z“$ domainname” ]'例如检查是否有域名设置,如果没有则提示用户输入内容。 http://stackoverflow.com/questions/11686208/check-if-environment-variable-is-already-set – ron