Bash 在单行命令中的另一个变量中展开变量



我正在尝试为 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/.$//')

但它不是更干净,只是更慢。

相关内容

  • 没有找到相关文章

最新更新