使用 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中的可移植性。
🏷️