
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を使用する必要があるかもしれませんが、わかりません。
答え1
ここで構文を混同しています。
シェルは${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