首页 > 解决方案 > 将 shell 脚本中的变量用于 gnuplot

问题描述

我尝试使用 shell 脚本中的变量在同一个图上绘制多条曲线。我的问题是我没有成功收集变量并在 gnuplot 中使用它们。

这是我的代码:

#!/bin/bash

for elem in AMD WALE SIM;
do
  echo $elem
  Utau_$elem=$(awk 'FNR==5{print $1}' file_$elem)
done
gnuplot -persist  <<-EOFMarker
list= "AMD WALE SIM"
plot for [i in list] "stat_".i u 1:($1/Utau_.i) @ title_i  
EOFMarker

该脚本旨在避免编写所有情节句子,但应具有与以下相同的效果:

 plot "stat_AMD" u 1:($1/Utau_AMD}) @title_AMD,\
"stat_WALE" u 1:($1/Utau_WALE}) @title_WALE,\
"stat_SIM" u 1:($1/Utau_SIM})  @title_SIM

我没有成功绘制任何东西,我不确定是否可以在 bash 脚本的值 Utau_$elem 和 gnuplot 脚本的 Utau_.i 之间完成链接。有人知道是否可行,我该如何编码?

非常感谢 !

标签: bashshellgnuplot

解决方案


感谢@markp-fuso,它有效!

我只需要将 "($1/${Utau_fr[${i}]})" 替换为 "(column(1)/${Utau_fr[${i}]})" 因为美元符号被解释为开始壳变量。


推荐阅读