gnuplot、此处文档和命令行参数

gnuplot、此处文档和命令行参数

我可以使用此处文档将 gnuplot 脚本传递给 gnuplot 并将命令行参数传递给 gnuplot 吗?

在我的 bash 文件中,我通常会写:

#!/bin/bash
#set up code in here...
gnuplot -c script.gp $first $second

但我想将所有内容都放在一个 bash 文件中,所以我已经完成了

#!/bin/bash
#set up code in here...
gnuplot -c <<- EOF
do for [j=0:ARG1] {
   do for [i=4:ARG2] {
      plot '${data}' index j using 2:i with lp
   }
}
EOF $first $second

但我得到了臭名昭著的warning: here-document at line 87 delimited by end-of-file (wantedEOF')`` 错误。$data$first、 和$second是在 bash 脚本中前面定义的。

如果我将命令行参数放在下一行,而不考虑 EOF,我会收到与 值相关的命令未找到错误$first

我的此处文档仅使用制表符缩进。没有尾随空格。

答案1

这是一种解决方案:删除参数,然后手动进行替换。

#!/bin/bash
#set up code in here...
gnuplot <<- EOF
do for [j=0:${first}] {
   do for [i=4:${second}] {
      plot '${data}' index j using 2:i with lp
   }
}
EOF

答案2

你可以尝试这样的事情:

gnuplot -c /dev/stdin "$first" "$second" <<-EOF
do for [j=0:ARG1] {
   do for [i=4:ARG2] {
      plot '${data}' index j using 2:i with lp
   }
}
EOF

Gnuplot 抱怨

line 4: No previous filename

但是当使用脚本文件时我遇到了同样的错误,所以这可能与代码不完整有关。

相关内容