我在bash中編程,我嘗試使用gnuplot創建4個文件中的一個圖。 我的文件在第一列中包含日期,在其餘10列中包含不同深度的海洋溫度。我得到錯誤,第0行:無效命令和第0行:需要常量表達式。Gnuplot - 在一個圖中繪製多個文件
MyVar="THO"
MySeas="Annual Win Spr Aut Sum"
MyWorkDir=/work/InterAnnual
echo "change dir"
cd $MyWorkDir
MyFileArx1=0001_field_${MyVar}.grb.regular
MyFileArx21=0021_field_${MyVar}.grb.regular
MyFileArx25=0025_field_${MyVar}.grb.regular
MyFileArx26=0026_field_${MyVar}.grb.regular
for MySeasName in ${MySeas} ;do
MyFile1=${MyFileArx1}_sm_${MySeasName}.col.dat
MyFile21=${MyFileArx21}_sm_${MySeasName}.col.dat
MyFile25=${MyFileArx25}_sm_${MySeasName}.col.dat
MyFile26=${MyFileArx26}_sm_${MySeasName}.col.dat
gnuplot << EOF
set term postscript eps enhanced color solid
set out 'InterAnnual.${MySeasName}.6.eps'
set key right top
set grid
set xrange [ 800:2000 ]
set size 1, 0.5
set xlabel "year"
set ylabel " T (C) "
plot "${MyFile1}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt, \
"${MyFile21}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt, \
"${MyFile25}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt, \
"${MyFile26}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt
EOF
done
`
bash不喜歡尾隨空格。嘗試刪除第31行EOF之後的空格和反斜槓(\)第27-30行之後的空格(在gnuplot/plot命令中延續反斜槓之後) – 0range 2014-12-02 18:00:05
非常感謝@Orange提供您的答案。我嘗試過,但不幸的是沒有更好的。 – Maria 2014-12-03 02:36:07
對我來說,當我刪除尾部空格時,錯誤消息更改爲「行0:無效表達式」。無效的表達式錯誤是因爲儘管存在關鍵字,也沒有定義lt(即,刪除lt或將其放在後面,例如lt 2)。 – 0range 2014-12-03 02:46:00