加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 将管道传递给需要文件名的命令

发布时间:2020-12-15 18:40:19 所属栏目:安全 来源:网络整理
导读:假设我有一个带有文件名参数的命令foo:foo myfile.txt.令人讨厌的是,foo没有读取标准输入.而不是实际的文件,我想传递另一个命令的结果(实际上,pv,它将捕获文件并输出进度表作为副作用). 有没有办法让这种情况发生?我的包里没有任何东西可以做到. (在这种情
假设我有一个带有文件名参数的命令foo:foo myfile.txt.令人讨厌的是,foo没有读取标准输入.而不是实际的文件,我想传递另一个命令的结果(实际上,pv,它将捕获文件并输出进度表作为副作用).

有没有办法让这种情况发生?我的包里没有任何东西可以做到.

(在这种情况下,foo是一个PHP脚本,我认为它顺序处理文件).

我正在使用Ubuntu和Bash

编辑
对于稍微不清楚的问题描述感到抱歉,但这是我想要的答案:

pv longfile.txt | foo /dev/stdin

现在很明显,我看到了它.

如果我理解你想要做什么,你可以使用bash的命令替换功能:
foo <(somecommand | pv)

这类似于基于mkfifo的答案提示的内容,除了bash为您处理细节(并且它会将/ dev / fd / 63之类的内容传递给命令,而不是常规的命名管道).您也可以更直接地这样做:

somecommand | pv | foo /dev/stdin

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读