74.3 Old-style

以下は、古いバージョンの gnuplot で使われていた、非推奨な call の仕組みの説明です。


     call "<input-file>" <param-0> <param-1> ... <param-9>

入力ファイル名は引用符で囲まなければなりません。入力ファイルの各行を読 み込む際に、以下の特別な文字列を走査します: $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $#。それが見つかったら、「$+数字」の列は call コマンドラインの 対応するパラメータに置き換えます。引用符はコピーせず、文字列変数置換は 行いません。文字列 $# はパラメータ数に置き換えます。その他の文字が後 ろについている $ は、エスケープシーケンスとして処理します。例えば 1 個 の $ を使うには $$ とします。

例:

ファイル 'calltest.gp' は以下の行を含んでいるとすると:

     print "argc=$# p0=$0 p1=$1 p2=$2 p3=$3 p4=$4 p5=$5 p6=$6 p7=x$7x"

次の行を入力すると:

     call 'calltest.gp' "abcd" 1.2 + "'quoted'" -- "$2"

以下のように表示されるでしょう:

     argc=7 p0=abcd p1=1.2 p2=+ p3='quoted' p4=- p5=- p6=$2 p7=xx

注意: 文字 $ は、gnuplot 自身のデータ列用の書式とぶつかりますし、 Unix 系のシェルの環境変数を参照する $ ともぶつかります。特別な文字列 $# は、gnuplot のバージョン 4.5 から 4.6.3 までは、間違えてコメント 文字列の区切り文字として解釈されていました。文字列置換では引用符は無視 されるので、文字列定数は簡単に壊れてしまいます。

竹野茂治@新潟工科大学
2022-07-20