Answers:
您可以使用cat
和管道:
cat file1 file2 file3 ... fileN | ./script
您的示例使用管道,没有临时文件:
join file1.txt file2.txt | ./script
join
没有临时文件的情况下指出一种使用方法,只是为了向读者说明: cat f1 f2
与join f1 f2
join
在示例中使用该代码是因为我之前在玩它;实际上,以我的示例为例cat
。
要添加@Jonah Braun的答案,如果您还需要将过程输出也添加到脚本中,即您的文件可能不在磁盘上,而是URL
使用curl
或类似工具访问的。
这样的东西可以用来获取stdout
多个进程,并通过脚本在脚本中使用它们stdin
这将是用于处理以下内容的脚本multi-input.sh
:
#!/usr/bin/env bash
while read line; do
echo $line
done
现在测试一下:
$ ./multi-input.sh < <(cat <(echo process 1) <(echo process 2) <(echo process 3))
输出:
process 1
process 2
process 3
<()
如果愿意,可以将过程转换为虚拟file
使用fd
,因此<
需要阅读它。cat
本身并不需要它,因为它可以做到,将虚拟或真实文件串联在一起。
zsh
您就可以运行cmd <file1 <file2 ... <fileN
;)