Ste*_*ett 24 bash pipe command
假设我有一个foo
带有文件名参数的命令:foo myfile.txt
. 令人讨厌的是,foo
不从标准输入读取。我想将另一个命令的结果传递给它,而不是实际的文件(实际上,pv
,它将捕获文件并输出进度表作为副作用)。
有没有办法做到这一点?我的技巧包中似乎没有任何东西可以做到。
(foo
在这种情况下是一个 PHP 脚本,我相信它会按顺序处理文件)。
我正在使用 Ubuntu 和 Bash
编辑抱歉,问题描述有点不清楚,但这是我想要的答案:
pv longfile.txt | foo /dev/stdin
Run Code Online (Sandbox Code Playgroud)
现在我看到它非常明显。
Gor*_*son 23
如果我明白你想正确地做什么,你可以用 bash 的命令替换功能来做:
foo <(somecommand | pv)
Run Code Online (Sandbox Code Playgroud)
这与mkfifo
基于 -based 的答案所建议的类似,除了 bash 为您处理细节(并且它最终将 /dev/fd/63 之类的东西传递给命令,而不是常规命名管道)。你也可以像这样更直接地做到这一点:
somecommand | pv | foo /dev/stdin
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19238 次 |
最近记录: |