답변:
bash는 신경 쓰지 않고 인쇄 가능한 문자를 사용할 수 있습니다. 아마도 UTF-8 형식의 유니 코드 를 지원하도록 터미널을 구성하고 싶을 것입니다 .
유니 코드에는 많은 문자가 있으므로 다음은 유니 코드 차트를 검색하는 데 도움이되는 몇 가지 팁입니다.
Ǫ
및 ı
수정 라틴 문자이다; ∉
수학 기호 등입니다.PS에 Shapecatcher, 내가 가지고 U + 2234 희망하므로 위한 ∴
, U + 2192은 오른쪽으로 ARROW 위해 →
, U + 263F 수은 에 대한 ☿
및 U + 2605 BLACK STAR 에 대한 ★
.
bash 스크립트에서 bash 4.1까지는 코드 포인트로 바이트를 작성할 수 있지만 문자는 작성할 수 없습니다. 비 ASCII 문자를 사용하여 .bashrc
파일 인코딩 변경을 복원하려면 UTF-8 인코딩에서 해당 문자에 해당하는 바이트를 입력해야합니다. echo ∴ → ☿ ★ | hexdump -C
UTF-8 터미널에서 실행하여 16 진 값을 볼 수 있습니다 ( 예 : UTF-8 ∴
로 인코딩 됨) \xe2\x88\xb4
.
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
유니 코드 문자를 포함해야합니다. $'\u1234'
유니 코드 문자를 문자열에 넣는 방법입니다.
다음과 같이 많은 사이트에서 유니 코드 기호를 찾을 수 있습니다. http://panmental.de/symbols/info.htm
용어가 UTF-8을 지원 하는지 확인해야합니다 .
\u27A4
echo ★ | hexdump -C1
, 내가 얻을 :hexdump: invalid option -- '1'
. 호출에서 1 없이도 계속 작동합니까?