Gnuplot -e は Debian 11 では動作しません。

Gnuplot -e は Debian 11 では動作しません。

たとえば、次のコマンド

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 ..

おすすめ記事