如何避免创建临时文件以从bash shell运行两个命令?

sta*_*and 4 unix bash command-line

我需要运行两个命令.第一个创建一个文件,用作第二个的输入参数.我可以这样跑:

$ cmd1 p1 p2 > tmp.txt
$ cmd2 -i tmp.txt p3 
Run Code Online (Sandbox Code Playgroud)

-i对参数cmd2需要一个文件名.有没有办法在不创建tmp.txt文件的情况下在一行中执行此操作?

Mar*_*ijn 11

尝试"进程替换"(这就是Bash手册所称的)

cmd2 -i <(cmd1 p1 p2) p3
Run Code Online (Sandbox Code Playgroud)

这也适用于另一种方式:

cmd2 -o >(cmd1 p1 p2) p3
Run Code Online (Sandbox Code Playgroud)