ここでドキュメントを使用してgnuplotスクリプトをgnuplotに渡し、コマンドライン引数をgnuplotに渡すことはできますか?
私のbashファイルには通常、次のように書きます。
#!/bin/bash
#set up code in here...
gnuplot -c script.gp $first $second
しかし、私はすべてをbashファイルに入れたかったので、そうしました。
#!/bin/bash
#set up code in here...
gnuplot -c <<- EOF
do for [j=0:ARG1] {
do for [i=4:ARG2] {
plot '${data}' index j using 2:i with lp
}
}
EOF $first $second
warning: here-document at line 87 delimited by end-of-file (wanted
しかし、悪名高いEOF ') ``エラーが発生しました。$data
、$first
およびは$second
以前にbashスクリプトで定義されています。
EOFに関係なく、次の行にコマンドライン引数を入れると、値関連コマンドが見つからないというエラーが発生します$first
。
ここの私のドキュメントでは、タブのインデントのみを使用します。後ろにスペースはありません。
答え1
解決策は次のとおりです。パラメータを削除して手動で交換します。
#!/bin/bash
#set up code in here...
gnuplot <<- EOF
do for [j=0:${first}] {
do for [i=4:${second}] {
plot '${data}' index j using 2:i with lp
}
}
EOF
答え2
次のように試すことができます。
gnuplot -c /dev/stdin "$first" "$second" <<-EOF
do for [j=0:ARG1] {
do for [i=4:ARG2] {
plot '${data}' index j using 2:i with lp
}
}
EOF
Gnuplotが文句を言う。
line 4: No previous filename
ただし、スクリプトファイルを使用すると同じエラーが発生するため、これは不完全なコードに関連している可能性があります。