linux - 这个 Bash(和/或其他 shell?)构造叫什么?

标签 linux bash shell unix stdout

bash 中的构造称为什么,您可以在其中包装输出到标准输出的命令,以便将输出本身视为流?如果我没有很好地描述这一点,也许一个例子会最好,这就是我通常使用它的目的:将 diff 应用于不是来自文件但来自其他文件的输出命令,其中

cmd 

被包裹为

<(cmd)

通过以这种方式包装命令,在下面的示例中,我确定我正在运行的两个命令之间存在一个差异,然后我能够确定一个精确的差异。将命令包装为 <(cmd) 调用的构造/技术是什么?谢谢

[builder@george v6.5 html]$ git status | egrep modified | awk '{print $3}' | wc -l
51
[builder@george v6.5 html]$ git status | egrep modified | awk '{print $3}' | xargs grep -l 'Ext\.define' | wc -l
50
[builder@george v6.5 html]$ diff <(git status | egrep modified | awk '{print $3}') <(git status | egrep modified | awk '{print $3}' | xargs grep -l 'Ext\.define')
39d38
< javascript/reports/report_initiator.js

附录 使用 git 的 ls-file 的建议修改后的命令应该如下(未经测试):

diff <(git ls-files -m) <(git ls-files -m | xargs grep -l 'Ext\.define')

最佳答案

它叫做 process substitution .

关于linux - 这个 Bash(和/或其他 shell?)构造叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8616518/

相关文章:

c - 动态电压和频率缩放 API

regex - 使用 grep 更改过滤字符串中的结果

c++ - 使用 C 代码执行 Bash 命令

linux - Bash 脚本启动程序并在给定时间退出

Linux - 如何根据字段值从文件中删除某些行

linux - Matlab 图内存未释放

linux - Cmake 将命令行参数添加到二进制文件

linux - 命令 "+0800"中的 "stat"是什么意思?

linux - 使用命令行从谷歌下载图像

ruby - 用于 Unix 命令管道的 Ruby 的 `Object#tap` 的惯用模拟?