Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 写入标准输出而不是文件_Bash - Fatal编程技术网

Bash 写入标准输出而不是文件

Bash 写入标准输出而不是文件,bash,Bash,如何将数据写入标准输出而不是写入文件 我正在使用GPG,希望将加密文本打印到标准输出,而不保存文件 但是,使用gpg命令,加密文本以普通方式写入文件: $> gpg --recipient someone@example.com --armor --output encrypted.txt --encrypt example.pdf (使用上述命令,加密文件保存在encrypted.txt中) 我想做的是: $> gpg --recipient someone@example.co

如何将数据写入标准输出而不是写入文件

我正在使用GPG,希望将加密文本打印到标准输出,而不保存文件

但是,使用gpg命令,加密文本以普通方式写入文件:

$> gpg --recipient someone@example.com --armor --output encrypted.txt --encrypt example.pdf
(使用上述命令,加密文件保存在encrypted.txt中)

我想做的是:

$> gpg --recipient someone@example.com --armor --output <STDOUT> --encrypt example.pdf
$>gpg——收件人someone@example.com--armor--output--encrypt example.pdf
和加密的消息显示在控制台中

我不想保存硬盘以避免性能损失。

通常使用“-”来指定标准输出,但并非所有命令都接受这一点,我也不知道gpg

例如:

tar -cvzf - foo/ ¦ split -b 50k foobar_
将“tar文件”通过管道传输到标准输出,将其拆分并根据


只需省略--output。

如果您的应用程序不支持“-”作为文件名(它应该支持),那么另一种选择是使用命名管道,尽管我承认这看起来像是使用大锤敲开螺母:

pipe='/tmp/pipe'
mkfifo "$pipe"

gpg --recipient someone@example.com --armor --output "$pipe" --encrypt example.pdf &

while read 
do
    echo "$REPLY"
done < $pipe

rm "$pipe"
pipe='/tmp/pipe'
mkfifo“$管道”
gpg——收件人someone@example.com--armor--输出“$pipe”--encrypt example.pdf&
读书时
做
回显“$REPLY”
完成<$pipe
rm“$pipe”

不幸的是,在我的环境中,“gpg——收件人”someone@example.com--armor--encrypt example.pdf“刚刚生成的example.pdf.asc…感谢您提供更多信息:)