回答:
任意の印刷可能な文字を使用できますが、bashは気にしません。おそらくUnicode(UTF-8の形式)をサポートするように端末を構成する必要があります。
Unicodeには多くの文字が含まれているため、Unicodeチャートを検索する際に役立つヒントを次に示します。
Ǫ
とは、ı
修飾子を持つラテン文字です。∉
は数学記号などです。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 -C
UTF-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\\]'
1
はタイプミスでした、ただhexdump -C
(またはhd
一部のシステムでは略して)です。
PS1=$'\u2234\u2192\u263f\u2605'
メンテナンスが簡単に感じる:
\uNNNN
構文は、$'…'
プロンプトの展開ではなく、引用の機能です。の値にPS1
はUnicode文字が含まれている必要があります。$'\u1234'
Unicode文字を文字列に入れる方法です。
次のような多くのサイトでUnicodeシンボルを見つけることができます:http : //panmental.de/symbols/info.htm
用語がUTF-8をサポートしていることを確認する必要があります。
\u27A4
私はこれらのツールを使用するのが好きです—それらは素晴らしい経験をしており、検索が簡単です:
echo ★ | hexdump -C1
、次のようになりますhexdump: invalid option -- '1'
。呼び出しで1がなくても動作しますか?