【问题标题】:gnuplot and bash process substitutiongnuplot 和 bash 进程替换
【发布时间】:2013-10-10 08:09:13
【问题描述】:

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

【问题讨论】:

  • 考虑改用命名管道。

标签: bash process gnuplot


【解决方案1】:

&lt; 后面的命令使用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

【讨论】:

  • 你教会了我很多关于 gnuplot 的知识。谢谢!为了成为这样的 gnuplot 专家,你读了些什么?我想读同样的东西。哦,谢谢你提醒我加入:当 FILE1 或 FILE2(不是两者)为 - 时,读取标准输入。
  • @tommy.carstensen 我阅读了代码,但它不是最好的用户手册:)。我发现 SO 上发布的许多问题对于测试、报告错误、考虑增强功能和了解不同的图表类型非常有帮助。
  • exec 在这里有用吗?
  • @TomFenech 我不记得了,如果没有它也可以工作,那么:不 :)
猜你喜欢
  • 2011-05-28
  • 2018-04-11
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 2014-09-08
  • 2012-11-20
  • 2018-03-21
  • 2014-12-02
相关资源
最近更新 更多