如何在脚本中将变量传递给gnuplot?
我要求用户输入网格尺寸:
read -p "Enter grid components (x, y, z): " -a grid
然后我调用此函数给我一个图:
create_TotE_vs_Kgrid_plot(grid)
以这种方式定义函数的地方:
create_TotE_vs_Kgrid_plot(grid) {
gnuplot <<\__EOF
plot "TotE_vs_Kgrid_convergence_${grid[0]}a_${grid[1]}a_${grid[2]}a.txt" using 2:1 w lp ls 1
__EOF
}
但是显然这是行不通的。如何在gnuplot中使用“网格”中的元素?
答案 0 :(得分:1)
bash中的函数参数工作不同。要对函数使用参数,请执行以下操作。
#!/bin/bash
function myfunc {
local arg1=$1
local arg2=$2
# arg3=$3, arg4=$4, etc
echo $arg1 $arg2
}
myfunc "derp" "test" # output is "derp test"
exit 0
例如:
#!/bin/bash
function plot_something {
local filename=$1
gnuplot --persist <<-EOF
plot "$filename" using 2:1 w lp ls 1
EOF
}
plot_something 'test.txt'
“ test.txt”的内容
# value0 value1 value2
3.141592 138 0.1
2.718281 128 1.5
1.30357 256 2.0