在 gnuplot 绘图命令中使用 bash 脚本变量

在 gnuplot 绘图命令中使用 bash 脚本变量

我想绘制存储在不同文件中的一组数据:

file.txt_100K
file.txt_200K
file.txt_300K

我想出了以下 bash 脚本:

  1 #!/bin/bash
  2 
  3 filename=file.txt_
  4 
  5 gnuplot <<- EOF
  6     set term png
  7     set output "plot.png"
  8     plot '"$filename"100K' w lp,\
  9                 '"$filename"200K' w lp,\
 10                 '"$filename"300K' w lp
 11 EOF

以下是运行脚本后的输出:

         line 0: warning: Cannot find or open file ""file.txt_"100K"
     line 0: warning: Cannot find or open file ""file.txt_"200K"
     line 0: warning: Cannot find or open file ""file.txt_"300K"
     line 0: No data in plot

我希望 bash 脚本的第 8、9 和 10 行会出现以下情况:

'"$filename"100K' == 'file.txt_100K'
'"$filename"200K' == 'file.txt_200K'
'"$filename"300K' == 'file.txt_300K'

我应该对第 8、9、10 行进行哪些更改才能获得上述所需结果?提前致谢。

答案1

从手册页来看,bash此处文档只做

参数扩展、命令替换和算术扩展,

所以它不会删除引号。使用像这样的行

plot '${filename}100K' w lp,\

相关内容