web-dev-qa-db-ja.com

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

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

Screenshot of a session showing a Prompt with an asterisk and arrow

バッシュプロンプトで使用できるすべての文字のリストはありますか、それとも誰かが星と右矢印の文字を入手できますか?

85
Naftuli Kay

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

Unicodeには多くの文字があるため、Unicodeチャートの検索に役立つヒントをいくつか紹介します。

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

追伸シェイプキャッチャーで、私は + 2234 THEREFORE for + 2192 RIGHTWARDS ARROW for + 263F MERCURY for および + 2605 BLACK STAR for

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

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\\]'

あなたはこのような多くのサイトでユニコードシンボルを見つけることができます: http://panmental.de/symbols/info.htm

termはUTF-8をサポートする であることを確認する必要があります。

12
jasonwryan

私はこれらのツールを使用するのが好きです—彼らは素晴らしい経験をしており、簡単に検索できます:

4
Eliran Malka