我正在尝试为 CentOS 7.3 主机提取 FQDN。这是我使用的脚本:
hostname=$(dig +short -x 10.10.10.10)
hostname=${hostname%.}
第二行的原因是dig
输出在末尾返回一个点.
例如 abc@def.com.
.因此,第二行剥离最后一个字符,即.
有没有办法我可以在一行中作为单行命令做到这一点? 像hostname=${$(dig +short -x 10.142.114.44)%.}
.基本上,我希望在另一个变量中扩展变量。我尝试使用${!..}
但无法使其工作,最终出现替换错误。我提到了这个,也提到了这个。
不可以,参数扩展只能应用于参数,不能嵌套。
您可以通过管道输出在单个命令中执行此操作:
hostname=$(dig +short -x 10.10.10.10 | sed -e 's/.$//')
但它不是更干净,只是更慢。