bashプロンプトの素晴らしい記号と文字


81

私は誰かの端末のスクリーンショットを見つけました:

アスタリスクと矢印が付いたプロンプトを示すセッションのスクリーンショット

Bashプロンプトで使用できるすべてのキャラクターのリストがありますか、それとも誰かが星と右矢印のキャラクターを取得できますか?

回答:


104

任意の印刷可能な文字を使用できますが、bashは気にしません。おそらくUnicodeUTF-8の形式)をサポートするように端末を構成する必要があります。

Unicodeには多くの文字が含まれているため、Unicodeチャートを検索する際に役立つヒントを次に示します。

  • Shapecatcherでキャラクターを描いてみることができます。描画するものの中でUnicode文字を認識しようとします。
  • キャラクターがどのブロックに入っているかを把握することができます。たとえば、その奇妙な形のシンボルとその星は、さまざまなシンボルのブロックの中にあります。以下のような文字Ǫとは、ı修飾子を持つラテン文字です。は数学記号などです。
  • 文字の説明で単語を考えて、Unicodeシンボル名と説明のリストでそれを探すことができます。GucharmapまたはKcharselectが役立ちます。

ShapecatcherでPS、私が持っしたがって、U + 2234のためにU + 2192 RIGHTWARDS ARROWためU + 263F MERCURYためU + 2605 BLACK STARのために

bash 4.1までのbashスクリプトでは、文字ではなくコードポイントでバイトを書き込むことができます。非ASCII文字を避け.bashrcてファイルエンコーディングの変更に対する回復力を持たせる場合は、これらの文字に対応するバイトをUTF-8エンコーディングで入力する必要があります。echo ∴ → ☿ ★ | hexdump -CUTF-8ターミナルで実行することにより、たとえばUTF-8 でエンコードされ\xe2\x88\xb4た16 進値を確認できます。

if [[ $LC_CTYPE =~ '\.[Uu][Tt][Ff]-?8' ]]; then
  PS1=$'\\[\e[31m\\]\xe2\x88\xb4\\[\e[0m\\]\n\xe2\x86\x92 \xe2\x98\xbf \\~ \\[\e[31m\\]\xe2\x98\x85 $? \\[\e[0m\\]'
fi

bash 4.2以降\uでは、$'…'文字列で4桁の16進数を使用できます。

  PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'

うーん。実行するとecho ★ | hexdump -C1、次のようになりますhexdump: invalid option -- '1'。呼び出しで1が​​なくても動作しますか?
ナフトゥリケイ

2
@TKKocheranそれ1はタイプミスでした、ただhexdump -C(またはhd一部のシステムでは略して)です。
ジル

また、あなたがすることができます:PS1=$'\u2234\u2192\u263f\u2605'メンテナンスが簡単に感じる:
マット

1
シェイプキャッチャーは素晴らしいです!指摘してくれてありがとう
シアモア

1
@FaithReaper \uNNNN構文は、$'…'プロンプトの展開ではなく、引用の機能です。の値にPS1はUnicode文字が含まれている必要があります。$'\u1234'Unicode文字を文字列に入れる方法です。
ジル

12

次のような多くのサイトでUnicodeシンボルを見つけることができます:http : //panmental.de/symbols/info.htm

用語がUTF-8をサポートしていることを確認する必要があります。


これらのキャラクターの1つをどのようにエスケープしますか?すなわち\u27A4
Naftuliケイ

2
:@Gilles答え、またはこれを参照してくださいstackoverflow.com/questions/602912/...
jasonwryan

あなたは全く65000+ユニコードポイントを見ることができるutf8-chartable.de(コードポイント値「UTF8」の文脈において、「ユニコード」と同義である。)
びき

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.