タグ付けされた質問 「escape-characters」

端末コマンドやファンクションキーのエンコーディングなどのエスケープシーケンス

4
ncursesアプリケーションから呼び出されるスクリプトの出力のエスケープシーケンス
現在、ホームサーバーのtmuxセッションでJabberクライアント(ncursesを使用)としてmcabberを実行しています。ローカルでは、iTerm2をターミナルエミュレータとして実行します。これは、文字エスケープシーケンスを介したうなり声通知のトリガーをサポートします。 注:すべて echoこの質問のはprintf %b、またはecho -ebashとGNUのように機能しますecho。 たとえばecho "\e]9;foobar\007"、iTerm2に「foobar」というテキストを含むGrowlメッセージを送信させます。 ただし、tmuxセッションでは、エスケープシーケンスが使い果たされます。したがって、独自の文字エスケープシーケンス\Ptmuxを使用すると、次のように使用できます。 echo "\ePtmux;\e\e]9;foobar\007\e\\" これにより、tmuxセッション内からうなり声メッセージがトリガーされます。 ただし、新しいメッセージを受信したときに起動されるmcabberイベントスクリプトでこれを使用すると、エコーが間違った端末に送信されるかのように通知がトリガーされません。 これは、スクリプトをトリガーするmcabberがncursesアプリケーションであるため、通常のbashスクリプトからの出力が失われ、iTerm 2でそれが表示されないためと思われます。 また、発見したアイデアに賛同する前に、成功せずにsmcupを呼び出してみました tput smcup echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\" tput rmcup 問題は「実際の端末ウィンドウ」に戻っていないので、これは機能しないと思いますが、ncursesウィンドウに出力を向けます。 これに関するアイデアはありますか?

2
コンソール出力の現在の色を判断する方法は?
色付きの端末が利用可能な場合、エスケープ文字を使用して出力に色を付けることができることを知っています。 しかし、出力が現在表示されている色を見つける可能性はありますか?それとも、今すぐ出力する場合、テキストの色は何ですか? これらのエスケープ文字を使用するとき、以前の色設定を壊さないようにお願いしています。「デフォルトの前景色」エスケープ文字は、変更前のテキストの色ではなく、カラースキームから情報を取得しています。

1
キャレット角括弧角括弧A ^ [[A-どういう意味ですか?
これは既に質問されている場合は申し訳ありませんが、自分でこれを見つける方法はわかりません。検索エンジンで「^ [[A」を検索すると、「^ [[」部分は完全に無視されます。 とにかく、私の質問:ターミナル(Mac)で矢印キーを押すと、文字「^ [[A」、「^ [[B」、「^ [[C」または「^ [[D」が表示されることがあります。DOSを使用しているときに(おそらく)DOSを使用したときに、この数年前に出会ったことを覚えているようです。 なぜこれが起こり、それらはどういう意味ですか?

1
「ドット」を2回エスケープする必要があるのはなぜですか?
リテラルと見なされるように*(){}$、withの\ような特殊文字をエスケープできることを知っています。 たとえば、\*または\$ しかし、.私はそれを2回し\\.なければならない場合、そうでなければそれは特別なキャラクターと見なされます。例: man gcc | grep \\. なぜそうなのですか?

2
BashとZsh以外のシェルはANSI-Cクォートをサポートしていますか?例:$ 'string'
出力に緑色のチェックマークを出力するために次を使用するシェルスクリプトがあります。 col_green="\e[32;01m" col_reset="\e[39;49;00m" echo -e "Done ${col_green}✓${col_reset}" BashのANSI-C Quotingについて読んだ後、色変数を設定-eし、echoからフラグを削除するときに使用できることに気付きました。 col_green=$'\e[32;01m' col_reset=$'\e[39;49;00m' echo "Done ${col_green}✓${col_reset}" これは、Bashの組み込みエコーまたは外部ユーティリティ/bin/echo(私はmacOS上にある)に渡されたメッセージが正しく印刷されることを意味するため、魅力的です。 しかし、これによりスクリプトの移植性が低下しますか?BashとZshがこのスタイルの引用をサポートしていることは知っていますが、他のことについてはわかりません。

1
grepを使用しているときに画面上に奇妙な記号がありますか?
何がこれを引き起こしているのでしょうか?grepを使用しない場合、表示されるのはISOコードと空のスペースのみです。 使用したソフトウェア コマンド: ./trans --id --input /path/to/txt | grep ISO | grep [a-z] root@box /test # alias grep alias grep='grep --color=auto' root@box /test # type grep grep is aliased to `grep --color=auto' 通常の出力:

1
ESCエスケープ文字を取得せずにスクリプトでlessを使用する方法
lessコマンドラインで使用すると、出力は次のようになります しかしless、bashスクリプト内から使用すると、次のようになります。 どのようにlessbashスクリプトで使用して、すべてのエスケープ文字を取得せずに、対話型コマンドラインでのように機能させることができますか?

2
ファイル名にスペースがあるスクリプトの問題
scpがリモートホストからローカルにファイルを戻すスクリプトを持っています。ファイル名にスペースが含まれている場合があります。scpは、ファイル名にスペースが含まれていないことを好みません。何らかの理由で、スペースを処理する私の試みは正しいscpパスをもたらしませんでした。 コード: PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg scp $PATH Me@10.1.10.33:/Users/Me/Desktop 結果 Cannot find directory: var/root/Documents/MyFile Cannot find directory: OG-v1.2.3.pkg PATHを引用符で囲むと"$PATH"、同じエラーが発生します。 エスケープされたスペースとスペースの交換も機能しませんが、私が知る限り、次のようにする必要があります。 ESC_PATH=${PATH/' '/'\ '} エスケープされたパスを印刷すると、編集が機能したことが示されますが、 echo $ESC_PATH > /var/root/Documents/MyFile\ OG-v1.2.3.pkg

3
tputよりもシーケンスをエスケープする客観的な利点はありますか?
.*rc私がオンラインで見ている人のファイルやさまざまなコードで、多くの人がを使用する代わりにANSIエスケープシーケンスを手動で使用する傾向がありtputます。 私tputはより普遍的/安全であるという理解を持っていたので、これは私に不思議に思います: 代わりにエスケープシーケンスを使用する必要がある客観的な理由はありますtputか?(移植性、エラーに対する堅牢性、異常な端末...?)

2
「CTRL +矢印/秒」のgnome-terminal ANSIエスケープシーケンスとは何ですか?
~/.inputrcこれらの設定にbashを構成しようとしています (注:←、→左および右矢印キーを意味します) Ctrl+ ←-単語に戻る必要があります Ctrl+ →-単語を先にジャンプする必要があります 現在私はこれを持っていますが、~/.inputrc動作しません。Ctrl + arrow何も生成しません。 "\eC-5C":forward-word "\eC-5D":backward-word 私のエスケープシーケンスが間違っていると確信しています。組み合わせの 正しいエスケープシーケンスは何Ctrl + arrowですか? 端末:gnome-terminal内のtmux


3
エスケープシーケンスを使用して制御文字を印刷する方法
tputを使用して赤を定義しました red=$(tput setaf 1) 私のプログラムの警告を色分けします。これはうまくいきます: printf '%sfail\n' "$red" # prints 'fail' in red ただし、次のようなエスケープシーケンスをそのまま出力したい場合があります。 \ E [31mfail どうすればいいですか?printfに%qフラグがあることは知っていますが、それは私がしたくない他のものをエスケープします。

4
端末のエスケープシーケンスをサポートするペーストビンサービスはありますか?
色をサポートするペーストビンサービスはありますか?それらの一部には構文の強調表示があることを理解していますが、できればターミナルエスケープシーケンスを使用して、任意の色付けを行いたいと思います。 たとえば、私はしたいと思います: grep --color=force foo /etc/motd | pastebinit 誰もがそのようなクールなサイトを知っていますか?

3
passwdでHTTP_PROXYおよび特殊文字をエクスポートする
議論のために、以下の私のパスワードが abc123@ パッチとアップデートを取得するには、企業のプロキシを介してLinuxマシンを認証する必要があります...通常はこれを使用します。 export HTTP_PROXY='http://<Americas\Username>:<Password>@proxy.foo.com' export http_proxy='http://<Americas\Username>:<Password>@proxy.foo.com' しかし、で終わる実際のパスワードを置き換えて@を実行するとaptitude update、... [mpenning@netwiki ~]$ sudo -E aptitude update Err http://mirror.anl.gov squeeze Release.gpg Could not resolve '@proxy.foo.com' Err http://mirror.anl.gov/debian/ squeeze/main Translation-en Could not resolve '@proxy.foo.com' 私はでパスワードを\@エスケープし、両方を\@\@2文字(@@)でエスケープしようとしましたが、これが正しくプロキシされないようです。最近パスワードを変更するまで問題はありませんでした。 パスワードをエスケープする正しい方法は何bashですか?

2
DEC ANSIコマンドシーケンスの質問。カーソルの動き
だから私はターミナルエミュレーションを書いて(わかっている、パテなどをコンパイルするだけでいい)、それが正しいことを確認するためにvttestを駆使する段階にいます。今はVT102をベースにしていますが、基本が正しく機能している場合は、カラーなどのターミナル機能を追加します。 コマンドセットは主にANSIです。DECは独自のコマンドセットを備えていましたが、1973年頃からANSIコマンドをサポートしていました。これらのANSI標準は明らかに現在利用できませんが、ECMAの同等物は利用できます。見ることができます。ほとんどのANSIコマンドシーケンスは、ESCで始まります。多くのコマンドは、ここではCSIとして示され、データ内で0x1c 0x5b(ESC [)、または8ビット通信が可能な場合は0xdbとして表されるコマンドシーケンス識別子で始まります。次に、コマンドを識別するシーケンスが続きました。コマンドの中には、カーソルの位置に影響を与えるもの、画面に影響を与えるもの、ホストへの応答を引き起こすものなどがあります。 一部の端末コマンドには数値引数が含まれています。例CSI 10 ; 5 Hは、カーソル位置を行10、列5にすることを意味します。数値引数がない場合、使用するデフォルト値があります。CSI 10 ; Hつまり、引数が指定されない場合のデフォルト値は1であるため、カーソル位置を行10、列1にします。 私はvt100.net(素晴らしいリソース)からのvt102マニュアルを持っており、これらのコマンドシーケンスに関する部分的な情報を提供する約12のページがあります。どうやら、完全なゴスペルDEC端末仕様はDECから外れたことはありません。 明らかなのは、CSI Cカーソルを右に移動することと、デフォルト値が1であることです。 はっきりしないのは、の意味ですCSI 0 C。 なぜそこにゼロがあるのですか、それはコマンドが何もしないように思われるでしょうか?「デフォルト値を使用」を意味する場合は、代わりに1として送信された可能性がありますが、短い文字列には引数がなく、いずれにしてもデフォルト値が1として解釈されることに依存します。これらの実際の物理VT端末は300ボー以下で使用されることが多かったため、1文字で問題ありませんでした。 私はvttestをあまり使いこなしていないので、両方の方法を試してみて、すべてが完璧になるかどうかを確認できますが、このような小さな質問が問題になり始めるほど十分です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.