linux - 为仅接受文件的 bash 命令提供环境变量
问题描述
我正在尝试编写脚本用于ansible-vault
在基于 Linux 的系统上加密文件。在这种情况下,我有一个ansible-vault
密码用于存储为环境变量的加密,我需要使用它来加密文件。
该ansible-vault
命令可以通过两种方式接受密码。一种需要手动输入密码(参见:)--ask-vault-pass
,另一种允许您将密码保存在文件中并使用(参见:)--vault-password-file
。该--ask-vault-pass
命令不适用于这种情况,因为我想避免要求用户输入。
我希望用它--vault-password-file
来实现这一点。现在我的代码是:
echo ${ANSIBLE_VAULT_PASSWORD} > .ansible_vault_temp
ansible-vault encrypt --vault-password-file=.ansible_vault_temp --output=encrypted_file.yml decrypted_file.yml
rm .ansible_vault_temp
但是,我不喜欢创建一个文件并在两个不同的行上删除它。是否有可能以命令将其视为文件但不会创建文件的方式传递${ANSIBLE_VAULT_PASSWORD}
给命令?ansible-vault
解决方案
您可以尝试进程替换:
ansible-vault encrypt --vault-password-file=<(echo "${ANSIBLE_VAULT_PASSWORD}") --output=encrypted_file.yml decrypted_file.yml
推荐阅读
- angular - NGRX 效果在错误时中断应用程序,如何处理错误?
- sql - 带有两个表的 SQL 递归 CTE
- css - ReactCSSTransitionGroup 没有动画高度
- android - 有人可以解释 Flutter 中的“Navigator.of”吗?
- javascript - 缩放时如何在IOS浏览器上定位固定位置的元素?
- vue.js - 如何将y和x坐标绑定到vue中的图像?
- java - 多态性最佳实践
- c# - C# 中的全局静态字典
- java - spring mvc中的错误404但适用于其他人
- git - 提交和推送快进合并时,BitBucket 挂钩不会删除 PR 的批准