gpt4 book ai didi

具有多个程序的linux管道要求用户输入

转载 作者:IT王子 更新时间:2023-10-29 00:58:09 27 4
gpt4 key购买 nike

我想知道如何创建一个管道

program 1 | ... | program N

其中多个程序要求用户输入。问题是 | 并行启动程序,因此它们开始并行读取终端。

对于这种情况,使用管道 | 仅在程序 i 产生一些输出后才启动程序 (i+1) 会很有用。

编辑:

例子:

cat /dev/sda | bzip2 | gpg -c | ssh user@host 'cat > backup'

这里 gpg -cssh 都要求输入密码。

这个特定示例的解决方法是创建 ssh key 对,但这在每个系统上都不可能,我想知道是否有通用解决方案。gpg 还允许将密码作为命令行参数传递,但出于安全原因不建议这样做。

最佳答案

你可以使用这个结构:

(read a; echo "$a"; cat) > file

例如:

$ (read a; echo "$a"; echo cat is started > /dev/stderr; cat) > file
1
cat is started
2
3

这里123是键盘输入的; cat is started 由 echo 编写。

执行命令后文件的内容:

$ cat file
1
2
3

关于具有多个程序的linux管道要求用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11786543/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com