5

gnuplot 是否允许 bash 进程替换?

在 gnuplot 中,我可以这样做:

plot "<join tmp1 tmp2" u 2:3

但我不能让它工作:

plot "<join tmp1 <(join tmp2 tmp3)" u 2:3

它应该工作,还是在 gnuplot 中不支持 bash 进程替换?

以下是 3 个示例输入文件:

猫 tmp1

A 1
B 2
C 3

猫 tmp2

B 3
C
D 6

猫 tmp3

A 4
B 6
C 8
D 10
E 12
4

1 回答 1

5

后面的命令<是用 执行的popen(),它使用/bin/sh(参见man popen)。因此,您必须bash显式调用才能使用进程替换:

plot '< exec bash -c "join tmp1 <(join tmp2 tmp3)"' using 2:3

在您使用单个替换的情况下,以下内容也可以:

plot '< join tmp2 tmp3 | join tmp1 -' using 2:3
于 2013-10-10T08:15:46.437 回答