Linux 在gpg脚本中写入位于其他文本文件中的密码短语

Linux 在gpg脚本中写入位于其他文本文件中的密码短语,linux,bash,gnupg,passphrase,Linux,Bash,Gnupg,Passphrase,我正在编写一个脚本GPG,我想在命令encrypt中编写一个密码短语。密码短语写入同一目录中的文本文件(passphrase.txt)。因此,我的目标是能够用script.sh代替mypassphrase文本文件passphrase.txt的内容。我已经看过grep、sed和awk命令,但是在使用它们时遇到了一些困难。有什么建议吗 该命令用于加密: gpg --passphrase mypassphrase --local-user $1 --recipient $2 --armor --sig

我正在编写一个脚本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
您可以使用:

gpg --passphrase $(tr -d $'\n' < passphrase.txt) --local-user "$1" --recipient "$2" --armor --sign --output "$3.asc" --encrypt "$3"
命令
tr-d$'\n“passphrase.txt
将输出mypassphrase.txt的内容,但将删除额外的新行(如果有)

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

gpg --passphrase $(< mypassphrase.txt) --local-user "$1" --recipient "$2" --armor --sign --output "$3.asc" --encrypt "$3"
gpg--passphrase$(
我很高兴它有帮助!
gpg --passphrase $(< mypassphrase.txt) --local-user "$1" --recipient "$2" --armor --sign --output "$3.asc" --encrypt "$3"