我正在编写脚本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
答案 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"