在gpg脚本中写入另一个文本文件中的密码

时间:2014-06-17 12:10:53

标签: linux bash gnupg passphrase

我正在编写脚本GPG,我想在命令encrypt中写一个密码。密码短语写在同一目录中的文本文件(passphrase.txt)上。所以我的目标是能够用script.sh代替mypassphrase文本文件passphrase.txt的内容。我已经查看了命令grep,看了一个awk但是遇到了一些使用它们的困难。有什么建议吗?

命令加密:

gpg --passphrase mypassphrase --local-user $1 --recipient $2 --armor --sign --output $3.asc --encrypt $3

1 个答案:

答案 0 :(得分:1)

您可以使用:

gpg --passphrase $(tr -d $'\n' < passphrase.txt) --local-user "$1" --recipient "$2" --armor --sign --output "$3.asc" --encrypt "$3"

说明:

bash知道command substitution $(),它将返回命令的输出:

output=$(command)

命令tr -d $'\n' passphrase.txt将输出mypassphrase.txt的内容,但会删除其他新行(如果有的话)。

如果您可以确保密码文件中没有其他新行,您可以使用以下更快的命令:

gpg --passphrase $(< mypassphrase.txt) --local-user "$1" --recipient "$2" --armor --sign --output "$3.asc" --encrypt "$3"