gnuplot 쉘 변수 대체 및 배열

gnuplot 쉘 변수 대체 및 배열

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

관련 정보