首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不阻塞和关闭读取器的情况下连续写入管道

在不阻塞和关闭读取器的情况下连续写入管道
EN

Stack Overflow用户
提问于 2020-07-02 23:32:50
回答 1查看 32关注 0票数 0

我今天想要的是在不阻塞的情况下从命名管道中读取/写入,并在不终止进程的情况下关闭两端的管道。我正在努力使进程在firset wright转到管道后关闭。我有一些代码给你来帮助我解决我的麻烦。

代码语言:javascript
复制
    mkfifo _gnupg_pipe_command

    gpg --homedir ./ --batch --verbose \
        --pinentry-mode loopback \
        --gen-key _gnupg_pipe_command &

    cat > $_gnupg_pipe_command <<EOF
%echo Generating a basic OpenPGP key
Key-Type: RSA
Key-Length: 4096
Key-Usage: sign
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: $_gnupg_name
EOF

    if [ -v _gnupg_comment ]; then
        cat > _gnupg_pipe_command <<EOF
Name-Comment: _gnupg_comment
EOF
    fi

    cat > _gnupg_pipe_command <<EOF
Name-Email: _gnupg_email@_gnupg_universe
Expire-Date: 1y
Passphrase: _gnupg_passphrase_key
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-02 23:45:00

将所有命令放在一个列表或子whole中,并将整个内容重定向到管道。

代码语言:javascript
复制
{ 
command1
command2
command3
} > _gnupg_pipe_command

管道将在开始时只打开一次,并在所有命令完成时关闭。

如果是一行代码,您需要适当的空格和;,因为{}不是自定界语法,它们是关键字。

代码语言:javascript
复制
{ cmd1; cmd2; cmd3; } > _gnupg_pipe_command

显然,问题中的脚本不能是一行代码,因为这里有文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62699949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档