我有一个非常简单的脚本:
#!/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字符,我就是不明白为什么。
发布于 2012-06-27 22:13:47
在未引用的here文档中,变量是展开的。试一试
gnuplot << 'EOF'或
gnuplot << \EOF您选择哪一个是个人偏好的问题(您可以使用任何引用机制,因此EOF""可以工作,但以上两个是最常见的)。当heredoc分隔符未加引号时,shell将$2扩展到传递给脚本的第二个参数。(尝试使用2个参数调用脚本。)当heredoc分隔符被引用时,不会发生这样的扩展。
https://stackoverflow.com/questions/11228174
复制相似问题