fhu*_*ain 6 bash array shell-script gnuplot
我需要在我的 gnuplot 命令中使用 shell 变量,为此我使用 here 文档样式。我还需要在 gnuplot 代码中使用循环。这两件事都在起作用。
现在 - 我想使用 gnuplot for 循环索引来访问 shell 数组变量。这就是我整天被困的地方。
我有这样的事情:
for ((i=0; i<=10; i++))
do
var[$i] = i*10
done
gnuplot<<EOF
do for [j=1:10]{
#need to access ${var[j]} somehow
val=sprintf("${var[%d]", j) ##doesn't work
}
EOF
Run Code Online (Sandbox Code Playgroud)
像 ${var[1]} 这样的个人访问是有效的。我怀疑这可能需要使用反引号和/或 expr,但我不确定。
你在这里混淆了语法。
shell 会看到${var[%d]
哪个看起来有点像 shell 变量 - 但事实并非如此。你应该试试
cat <<EOF
...
EOF
Run Code Online (Sandbox Code Playgroud)
进行调试并准确查看发生了什么。我认为你想要的是更像
for ((i=0; i<=10; i++))
do
var[$i] = i*10
done
gnuplot<<EOF
values="${var[*]}"
do for [j in values] {
#need to access ${var[j]} somehow
val=sprintf("%d", j) ##access part of the array directly
}
EOF
Run Code Online (Sandbox Code Playgroud)