1

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

命令加密:

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

1 回答 1

1

您可以使用:

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

解释:

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

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"
于 2014-06-17T12:27:16.200 回答