我试图为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)%.}
这样的东西。基本上,我希望在另一个变量中扩展变量。我尝试使用${!..}
但无法使其正常工作并最终导致替换错误。我提到了this和this。
答案 0 :(得分:3)
不,参数扩展只能应用于参数,并且不能嵌套。
您可以通过管道输出在单个命令中执行此操作:
hostname=$(dig +short -x 10.10.10.10 | sed -e 's/\.$//')
但它不是更干净,只是更慢。