Answers:
您可以使用流程替换来实现。
. <(gpg -qd "$encrypted_filename")
这是一个例子:
% cat > to-source <<< 'echo "Hello"'
% . ./to-source
Hello
% gpg -e -r chris@chrisdown.name to-source
% . <(gpg -qd to-source.gpg)
Hello
gpg -d
不会将文件持久保存到磁盘,而只是将其输出到stdout。<()
使用FIFO,这也不会导致实际的文件数据写入磁盘。
在bash中,.
和source
是同义词,但.
更可移植(它是POSIX的一部分),因此在这里使用了它。但是请注意,这<()
并不那么可移植-就我所知,仅bash,zsh,ksh88和ksh93支持。pdksh和mksh具有可以具有相同效果的协同进程。
<(command)
。
. <(aescrypt -d -o - file.aes)