클릭하기 전에 이것은 일반적인 "bash 프롬프트에 색상을 지정하는 방법"이 아닙니다. 나는 이미 다음과 같이 bash 프롬프트를 사용자 정의했다.
[user @ host]----[$(pwd)]
$
~ / .bashrc 파일에 다음을 추가하여 대괄호 안의 모든 것이 밝은 파란색이고 다른 모든 ($ 포함)은 검은 색입니다.
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
목표는 'sudo su'를 사용할 때 변경되는 유일한 것은 검은 $가 빨간색 #으로 바뀌는 것입니다. 주석 처리 할 줄이 있는지 확인하기 위해 /etc/bash.bashrc 및 / etc / profile을 살펴 보았지만 debian_chroot에 대해 이해할 수없는 많은 것들이 있으며 원하지 않습니다. 무언가를 망칠 수 있습니다. 원하는 것을 어떻게 달성 할 수 있습니까?
추신 : 이것은 프롬프트가 루트처럼 보이기를 원하는 것입니다.
[user @ host]----[$(pwd)]
(red)#
편집 : 루트가 내 목표를 달성하는 동안 ~ / .bashrc에 위의 코드를 추가 하여이 문제를 해결했습니다. 또한 위의 코드에서 $ (pwd)는 홈 디렉토리 만 표시합니다 (터미널을 열 때 작업 디렉토리이기 때문에 추측하지 않습니다). $ (pwd)를 \ w로 바꾸면이 문제가 해결되지만 홈 디렉토리는로 표시됩니다 ~
.
\e[01;31m
에 \[...\]
. 이것은 설명서의 PROMPTING 아래에 설명되어 있습니다. 또한 참조 mywiki.wooledge.org/BashFAQ/053
pwd
프롬프트에서 작동하지 않는 이유 는 달러 기호를 이스케이프해야하며, 그렇지 않으면 콘텐츠가 $ PS1에 배치 되기 전에$(pwd)
실행됩니다 . 다음과 같이 테스트 할 수 있습니다 .. PS1="\$(pwd) "