たとえば、次のコマンド
gnuplot -e "splot [x=-3:3] [y=-3:3] sin(x)*cos(y)"
GNUPLOT 5.4p5を使用してWindows 10で完全に動作します。ただし、GNUPLOT 5.4p1がインストールされているDebian Bullseyeボックスでは、次のエラーのみが表示されます。
line 0: undefined variable:
引数なしでGNUPLOTを実行し、GNUPLOTコマンドプロンプトで同じコマンドを実行すると、プロット付きのウィンドウが表示されます。
これは一種のコマンドライン解析の問題ですか、それとも文字セット/ロケールに関する問題ですか?
ベストアンサー1
私は自分の質問に答えて、ついに問題が何であるかを見つけたからです:UTF-8禁則空白シーケンス(c2 a0
)。
別のDebian Bullseyeシステムで同じコマンドを実行しましたが、少し異なる結果が出ました。
line 0: undefined function: sin
システムが以前に試したものと同じであるため、これはより疑わしいようです。また、以前の誤ったスペースは、sin
構文解析/文字エンコーディングに関連するものであり、誤った構文などではないことを示唆しています。
]
との間のスペースを削除して再入力してみると、sin
問題が解決しました。
私が狂ったことを確認するために、ターミナル出力をテキストファイルにコピーしましたlog.txt
。
% cat log.txt
% gnuplot -e "splot [x=-3:3] [y=-3:3] sin(x)*cos(y)"
line 0: undefined function: sin
% gnuplot -e "splot [x=-3:3] [y=-3:3] sin(x)*cos(y)"
(plot window appears and disappears)
hexdumpにダンプします。
% hexdump -C log.txt
00000000 25 20 67 6e 75 70 6c 6f 74 20 2d 65 20 22 73 70 |% gnuplot -e "sp|
00000010 6c 6f 74 20 5b 78 3d 2d 33 3a 33 5d 20 5b 79 3d |lot [x=-3:3] [y=|
00000020 2d 33 3a 33 5d c2 a0 73 69 6e 28 78 29 2a 63 6f |-3:3]..sin(x)*co|
00000030 73 28 79 29 22 0a 6c 69 6e 65 20 30 3a 20 75 6e |s(y)".line 0: un|
00000040 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e |defined function|
00000050 3a 20 c2 a0 73 69 6e 0a 25 20 67 6e 75 70 6c 6f |: ..sin.% gnuplo|
00000060 74 20 2d 65 20 22 73 70 6c 6f 74 20 5b 78 3d 2d |t -e "splot [x=-|
00000070 33 3a 33 5d 20 5b 79 3d 2d 33 3a 33 5d 20 73 69 |3:3] [y=-3:3] si|
00000080 6e 28 78 29 2a 63 6f 73 28 79 29 22 0a |n(x)*cos(y)".|
0000008d
これは犯人を見つけるのに役立ちます。
00000020 .. .. .. .. .. c2 a0 ..