シェル出力は、コマンドプロンプトの後に入力されたテキストにどのような影響を与えますか?

シェル出力は、コマンドプロンプトの後に入力されたテキストにどのような影響を与えますか?

以前も同様の動作を経験しましたが、これまではこれを再現できませんでした。コマンドの出力は、Enterユーザーが編集する準備ができてからコマンドプロンプトの後のテキストに影響します。

たとえば、

cat /usr/share/terminfo/a/ansi

効果は次のとおりです。

ここに画像の説明を入力してください。

または、以下をコピーして貼り付けます。

1%dP1%dM1%dB1%d@1%dS1%dL1%dD1%dC1%dT1%dA%p1%c2%{1}%-%db%p1%dd
1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m +%d;%dR;0123456789]c1%dm1%dmAX[user@untrusted ~]$ R65;1;9c

ご覧のとおり、コマンドR65;1;9cプロンプトが表示されたら、キーを押すとEnterコマンドとして評価されます。

テキストがコマンドラインの後に表示されるだけでなく、再実行された状況も覚えています。おそらく改行が含まれているからでしょう。

これはバグと見なすことができますか?それとも予想される動作ですか?次のコマンドプロンプトの後に印刷できない文字のいくつかの組み合わせを書くことはできますか?

ベストアンサー1

表示は端末の属性文字列です。端末は、これらのコマンドの1つ以上に異なる方法で応答できます。

これを再現する簡単な方法:

$ echo -e '\033[c'

私の知る限り、Gnome terminalこの部分ではタイプ 65;1;9cxterm内部にタイプ 64;1;2;6;9;15;18;21;22cコンソールでCtrl-Alt-F1を押すと6c

これらの文字列は端末で生成されるため、任意のテキストを「挿入」するために使用することはできません。

このページその意味について詳しく教えてください。

   CSI Ps c  Send Device Attributes (Primary DA).
          Ps = 0  or omitted -> request attributes from terminal.  The
          response depends on the decTerminalID resource setting.
            -> CSI ? 1 ; 2 c  ("VT100 with Advanced Video Option")
            -> CSI ? 1 ; 0 c  ("VT101 with No Options")
            -> CSI ? 6 c  ("VT102")
            -> CSI ? 6 2 ; Psc  ("VT220")
            -> CSI ? 6 3 ; Psc  ("VT320")
            -> CSI ? 6 4 ; Psc  ("VT420")
          The VT100-style response parameters do not mean anything by
          themselves.  VT220 (and higher) parameters do, telling the
          host what features the terminal supports:
            Ps = 1  -> 132-columns.
            Ps = 2  -> Printer.
            Ps = 3  -> ReGIS graphics.
            Ps = 4  -> Sixel graphics.
            Ps = 6  -> Selective erase.
            Ps = 8  -> User-defined keys.
            Ps = 9  -> National Replacement Character sets.
            Ps = 1 5  -> Technical characters.
            Ps = 1 8  -> User windows.
            Ps = 2 1  -> Horizontal scrolling.
            Ps = 2 2  -> ANSI color, e.g., VT525.
            Ps = 2 9  -> ANSI text locator (i.e., DEC Locator mode).

一部のデバイスも出力識別情報次のエスケープシーケンス(要求端末パラメーター)を持つ装置の場合。

$ echo -e '\033[x'

おすすめ記事