KornShell의 색상 프롬프트

KornShell의 색상 프롬프트

~에 따르면이 StackOverflow 게시물, KornShell에 색상 프롬프트가 있을 수 있습니다. 나는 무엇을 해야할지 전혀 몰랐습니다. 색상을 사용할 수 있습니다.

echo -e "\033[34mLinux\033[00m"

아래와 같이 파란색 "Linux" 출력이 제공됩니다.

printf "\033[34mLinux\033[00m"

PS1그러나 이스케이프 코드를 프롬프트 변수 에 통합하면 이스케이프되지 않습니다. 컬러팁을 얻으려면 어떻게 해야 하나요? 보기에도 매력적일 뿐만 아니라 출력을 시각적으로 분석하는 데에도 유용한 색상 팁이 있습니다.

답변1

리터럴 Esc 문자를 사용하고 Ctrl- 를 v입력 하면 됩니다( 화면에 Esc표시됨 ).^[

PS1="^[[34mLinux^[[00m"

echo또는 작동하는 명령의 출력을 사용하십시오.

PS1="$(echo -e "\033[35mLinux\033[00m")"

답변2

PS1변수에 리터럴 이스케이프 문자를 넣어야 합니다 . Ksh88 및 pdksh 및 mksh(이전 버전)와 같은 복제본에는 내장된 기능을 제외하고 제어 문자에 대한 리터럴 구문이 없습니다 print. Mksh는 이스케이프를 이해 \e하지만 pdksh는 8진수 코드를 기대합니다 \033.

PS1=$(print '\033[34mLinux\033[00m')

ATT ksh93에서는 백슬래시로 이스케이프된 리터럴 구문을 도입했습니다 $'…'(R39b 이후 mksh에서도 사용 가능). 백슬래시 이스케이프를 사용하여 이러한 리터럴에 제어 문자를 넣을 수 있습니다.

PS1=$'\e[34mLinux\e[00m'

답변3

나는 mksh사용자 를 위해 이것을 사용합니다 shell:

# custom prompt see http://comments.gmane.org/gmane.os.miros.mksh/126
PS1=$'\a\r\a\e[1;34m\a ^ ^  ^ ^ | \a\e[36m\a${USER:=$(ulimit -c 0; id -un 2>/dev/null || echo
\?)}@${HOSTNAME%%.*}\a\e[34m\a | ^ ^  ^ ^ | \a\e[0;33m\a$(local d=${PWD:-?} p=~; [[ $p = ?(*/) ]] || d=${d/#$p/~};
print -nr -- "$d")\a\e[1;34m\a |\n ^ ^  ^ ^ | \a\e[32m\a$(date +%H:%M)\a\e[34m\a | ^ ^ >>\a\e[0m\a '

&는 약간 다릅니다 shell.root

PS1=$'\a\r\a\e[1;34m\a ^ ^  ^ ^  ^   \a\e[31m\a${USER:=$(ulimit -c 0; \
    id -un 2>/dev/null || echo \?)}@${HOSTNAME%%.*}\a\e[34m\a  ^ ^  ^ ^  ^ ^  ^   \a\e[0;33m\a$(
        local d=${PWD:-?} p=~
        [[ $p = ?(*/) ]] || d=${d/#$p/~}
        print -nr -- "$d"
)\a\e[1;34m\a  ^ ^ \n ^ ^  ^ ^  ^   \a\e[32m\a$(date +%H:%M)\a\e[34m\a  ^ ^  ^ ^   \a\e[0m\a '

여기에 이미지 설명을 입력하세요.

특수문자는 복사되지 않기 때문에이건 페이스트빈 페이스트야일반 사용자와 루트 사용자의 경우.

답변4

이전 답변과 기타 출처 덕분에 다음과 같은 결과를 얻을 수 있었습니다.

Korn 쉘 프롬프트:

PS1="$(echo "\033[32m`logname`\033[35m@\033[32m`hostname` \033[33m`pwd`\033[36m\n\$\033[0m")"

타격이 큰 팁:

PS1="\[\e[32m\]\u\[\e[35m\]@\[\e[32m\]\h \[\e[33m\]\w\[\e[36m\]\n\$\[\e[0m\]"

그들은 다음과 같은 형식으로 동일한 색상의 힌트를 제공합니다(예, 저는 Queen's English를 사용합니다;)).

username@computername /current/working/directory
$

DOS와 동등한 기능(색상 옵션은 없음)은 다음과 같습니다.

prompt %username%@%computername% $P$_$G

이것은 만든다:

username@computername /current/working/directory
>

">"는 "$"를 사용하여 "nixy" 대신 "DOSsy"로 유지합니다. 그러나 각인("$")을 원하는 경우 다음과 같습니다.

prompt %username%@%computername% $P$_$$

로그인 계정에 필요한 권한이 있는 경우 "nixies" 앞에 "export"를 영구적으로 추가할 수 있습니다.

export PS1="..."

DOSsy를 다음으로 변경합니다.

setx PROMPT "%username%@%computername% $P$_$G"

또는

setx PROMPT "%username%@%computername% $P$_$$"

관련 정보