Jon*_*ark 2 unix command-line-interface stdin stdout
这是一种常见情况:您希望将命令 'foo' 作为管道的一部分包含在内,但不幸的是,命令 'foo' 只接受 I/O 的实际文件名,并且不从 stdin/stdout 读/写。我知道有一个 Unix 命令可以作为诸如“foo”之类的错误命令的包装器,但我不记得它的名字。它是什么?
假设foo使用-i其输入文件和-o用于其输出之一,这应该将其转换为适合于管道的程序:
previousCommand | foo -i <(cat) -o >(cat) | nextCommand
Run Code Online (Sandbox Code Playgroud)
这称为进程替换,虽然不是标准的,但至少可用于 ksh 和 bash。
在像前面的例子这样的简单情况下,可以像这样减少管道:
foo -i <(previousCommand) -o >(nextCommand)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |