将 shell 脚本中的变量用于 gnuplot
Using variables from shell script for gnuplot
我尝试使用 shell 脚本中的变量在同一图上绘制多条曲线。我的问题是我没有成功收集变量并在 gnuplot 中使用它们。
这是我的代码:
#!/bin/bash
for elem in AMD WALE SIM;
do
echo $elem
Utau_$elem=$(awk 'FNR==5{print }' file_$elem)
done
gnuplot -persist <<-EOFMarker
list= "AMD WALE SIM"
plot for [i in list] "stat_".i u 1:(/Utau_.i) @ title_i
EOFMarker
本脚本旨在避免将所有情节语句都写出来,但应该与以下脚本具有相同的效果:
plot "stat_AMD" u 1:(/Utau_AMD}) @title_AMD,\
"stat_WALE" u 1:(/Utau_WALE}) @title_WALE,\
"stat_SIM" u 1:(/Utau_SIM}) @title_SIM
我没有成功绘制任何东西,我不确定 link 是否可以在 bash 脚本的值 Utau_$elem 和 gnuplot 的 Utau_.i 之间完成脚本。有人知道是否可行吗?我该如何编码?
非常感谢!
感谢@markp-fuso,成功了!
我只需要将“($1/${Utau_fr[${i}]})”替换为“(column(1)/${Utau_fr[${i} ]})" 因为美元符号被解释为开始一个 shell 变量。
我尝试使用 shell 脚本中的变量在同一图上绘制多条曲线。我的问题是我没有成功收集变量并在 gnuplot 中使用它们。
这是我的代码:
#!/bin/bash
for elem in AMD WALE SIM;
do
echo $elem
Utau_$elem=$(awk 'FNR==5{print }' file_$elem)
done
gnuplot -persist <<-EOFMarker
list= "AMD WALE SIM"
plot for [i in list] "stat_".i u 1:(/Utau_.i) @ title_i
EOFMarker
本脚本旨在避免将所有情节语句都写出来,但应该与以下脚本具有相同的效果:
plot "stat_AMD" u 1:(/Utau_AMD}) @title_AMD,\
"stat_WALE" u 1:(/Utau_WALE}) @title_WALE,\
"stat_SIM" u 1:(/Utau_SIM}) @title_SIM
我没有成功绘制任何东西,我不确定 link 是否可以在 bash 脚本的值 Utau_$elem 和 gnuplot 的 Utau_.i 之间完成脚本。有人知道是否可行吗?我该如何编码?
非常感谢!
感谢@markp-fuso,成功了!
我只需要将“($1/${Utau_fr[${i}]})”替换为“(column(1)/${Utau_fr[${i} ]})" 因为美元符号被解释为开始一个 shell 变量。