Gnuplot不会读取$ character

时间:2012-06-27 14:10:37

标签: gnuplot

我有一个非常简单的脚本:

#!/bin/bash
gnuplot << EOF
set term postscript portrait
set output 'out.ps'

plot 'data_file' u 3:($2==0.0 ? $2:1/0)

EOF

data_file看起来像这样:

  O4     -1.20     -0.33     -5.20  
O9.5     -1.10     -0.30     -3.60  
  B0     -1.08     -0.30     -3.25  
B0.5     -1.00     -0.28     -2.60  
B1.5     -0.90     -0.25     -2.10  
B2.5     -0.80     -0.22     -1.50  
  B3     -0.69     -0.20     -1.10  
....

我尝试了几种组合,但我总是得到同样的错误:

gnuplot> plot 'S-K_data' u 3:(==0.0 ? :1/0)
                          ^
         line 0: invalid expression 

正如您所看到的,它不是在阅读$2个字符而我无法找出原因。

1 个答案:

答案 0 :(得分:3)

在未加引号的doc中,变量被扩展。尝试

gnuplot << 'EOF'

gnuplot << \EOF

您选择的是个人偏好问题(您可以使用任何引用机制,因此EOF""有效,但上面两个是最常见的)。当heredoc分隔符未加引号时,shell将$2扩展为传递给脚本的第二个参数。 (尝试使用2个参数调用脚本。)当引用heredoc分隔符时,不会发生此类扩展。