使用 jq 提取和传播多个值的 Shell 技巧

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

本文介绍了使用jq从Terraform中提取和传播多个值的方法。作者通过使用terraform show -json命令获取Terraform状态的JSON输出,并使用jq提取所需的两个值。作者还分享了一个使用jq和psql的解决方案,以从Terraform状态中提取密码和数据库主机,并打开与数据库的会话。作者解释了如何使用输入重定向和进程替换来传递这两个值给psql命令,并提到了使用分组命令来解决变量安全性问题。

🎯

关键要点

  • 本文介绍了如何使用jq从Terraform中提取和传播多个值。

  • 作者使用terraform show -json命令获取Terraform状态的JSON输出。

  • 提取的两个值是数据库的随机密码和主机URL。

  • 作者分享了一个使用jq和psql的解决方案来打开与数据库的会话。

  • 使用输入重定向和进程替换将提取的值传递给psql命令。

  • 使用分组命令解决变量安全性问题,确保敏感信息不会在会话结束后保留。

延伸问答

如何使用jq从Terraform中提取多个值?

可以使用terraform show -json命令获取Terraform状态的JSON输出,然后通过jq提取所需的值。

提取的两个值是什么?

提取的两个值是数据库的随机密码和主机URL。

如何将提取的值传递给psql命令?

可以使用输入重定向和进程替换将提取的值传递给psql命令。

使用分组命令有什么好处?

使用分组命令可以确保变量在会话结束后不会保留,从而提高安全性。

为什么要避免将Terraform输出存储在文件中?

存储Terraform输出在文件中会污染工作区,因此应避免这样做。

如何确保提取的值在不同的Shell中都能使用?

通过使用输入重定向而不是管道,可以提高解决方案在不同Shell中的可移植性。

🏷️

标签

➡️

继续阅读