我想知道如何创建管道
program 1 | ... | program N
其中多个程序要求用户输入。问题是|
并行启动程序,因此它们开始从终端并行读取。
|
对于这种情况,只有在程序 i 产生了一些输出之后才启动程序 (i+1)的管道会很有用。
编辑:
例子:
cat /dev/sda | bzip2 | gpg -c | ssh user@host 'cat > backup'
在这里既要输入密码,也要输入密码gpg -c
。ssh
此特定示例的解决方法是创建 ssh 密钥对,但这并非在每个系统上都可行,我想知道是否有通用解决方案。gpg 还允许将密码短语作为命令行参数传递,但出于安全原因不建议这样做。