ヒアドキュメントスタイルを使用しているgnuplotコマンドでシェル変数を使用する必要があります。また、gnuplotコード内でループを使用する必要があります。これらは両方とも機能しています。
ここで、gnuplot forループのインデックスを使用して、シェル配列変数にアクセスします。これは私が一日中立ち往生しているところです。
私はこのようなものを持っています:
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
$ {var [1]}のような個別のアクセスは機能します。これにはバッククォートやexprを使用する必要があると思いますが、よくわかりません。
ここで構文を混同しています。
シェルには${var[%d]
が表示されますが、これはシェル変数に少し似ていますが、そうではありません。試してみてください
cat <<EOF
...
EOF
デバッグして、何が起こっているかを正確に確認します。あなたが欲しいと思うのはもっと
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