【问题标题】:how to pass variable to -e on gnuplot?如何在gnuplot上将变量传递给-e?
【发布时间】:2014-08-12 07:39:05
【问题描述】:

我想定义一个 png 文件的 gnuplot 输出。如何在 gnuplot 上定义 fileName。

    #This lines and also Traffic$j are define on my bash file.
    # Traffic$j is the name of file and that is valid. Traffic$j is on the loop
    # j is loop index
.
.

    fileName=Traffic$j
.
.

我试试这个:

gnuplot -e "filename=${!fileName}" plotFile

但我犯了这个错误:

第 0 行:需要常量表达式

我尝试了ruakh的想法:

gnuplot -e "filename = '${!fileName}'" plotFile

但我听懂了这个警告:

“plotFile”,第 12 行:警告:跳过没有有效点的数据文件

第 12 行?看看我脚本的最后一行。

如何将变量传递给 -e 开启 gnuplot?

更新: 我的 plotFile 是这样的:

set terminal png size 720,450 enhanced font "H,11"
set output filename . '.png'

plot '../_numXY' using 2:3:(sprintf('%d', $1)) with labels offset 0,1 point pointtype 7 ps 2 lc rgb "green" notitle, \
filename using 1:2:($3-$1):($4-$2) with vectors linewidth 6 lc rgb "blue" notitle #line 12

【问题讨论】:

标签: bash gnuplot


【解决方案1】:

问题不在于如何传递变量,而在于如何引用字符串。例如,如果$j 是3 而$Traffic3 是file.txt,那么你传递给-e 的是filename=file.txt,而你需要传递的是filename = "file.txt" 或@ 987654328@。所以:

gnuplot -e "filename = '${!fileName}'" plotFile

编辑添加:在评论中,您写道:

谢谢,$Traffic3 不是 file.txt。或者更好地说我没有 $Traffic3 但我有 Traffic3。 Traffic3 不是参数。它是文件本身的名称,而不是像 file.txt 这样的其他东西

这意味着你不应该写${!fileName},而应该写$fileName。符号${!fileName} 大致意思是“好的,所以$fileName 的值是另一个变量的名称。给我那个变量的值。”所以你只想:

gnuplot -e "filename = '$fileName'" plotFile

【讨论】:

  • 谢谢,$Traffic3 不是 file.txt。或者更好地说我没有 $Traffic3 但我有 Traffic3。 Traffic3 不是参数。它是文件本身的名称,而不是像 file.txt 那样引用其他东西
  • @alex: 在这种情况下,你不应该写${!fileName}(这意味着“名称为$fileName值的变量的值——例如,如果$fileName是Traffic3,然后${!fileName} 表示$Traffic3),而是$fileName。我会更新我的答案。
【解决方案2】:

您可能不想强制转换间接变量扩展?

gnuplot -e "filename=${fileName}" plotFile

【讨论】:

  • 感谢您的帮助。但它告诉我:第 0 行:未定义变量:Traffic1
  • 因为那应该是gnuplot -e "filename='${fileName}'" plotFile。请参阅How to pass command line argument to gnuplot?。
  • @Christoph 谢谢克里斯托夫。上帝保佑你,你让我开心。谢谢。
猜你喜欢
  • 1970-01-01
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-04
  • 2017-11-30
  • 2012-10-01
  • 2016-03-05
相关资源
最近更新 更多