나는 PS1
bash를 위해 좋은 것을 만들었습니다.http://bashrcgenerator.com/, 그런데 뭔가 잘못된 것 같습니다. 터미널 에뮬레이터에 임의의 문자가 표시됩니다. 이는 PS1
구문 오류가 있을 수 있음을 의미합니다. 이상한 점은 나노를 사용하여 편집한 후에 작동한다는 것입니다. 공백을 추가하고 제거하고 저장한 다음 bash를 실행하면 정상적으로 작동합니다. 그런데 로그아웃했다가 다시 로그인하면 또 오류가 나오며 이상합니다. 이것은 내 .bashrc입니다.
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
#PS1='[\u@\h \W]\$ '
PS1="\[$(tput sgr0)\]\033[38;5;15m\033[38;5;14m\u\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m \[$(tput sgr0)\]\033[38;5;15m\033[38;5;10m\w\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m \
\[$(tput sgr0)\]\033[38;5;15m\033[38;5;14m\\$\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m \[$(tput sgr0)\]"
답변1
프롬프트를 직접 수동으로 생성하는 것이 좋습니다. 몇 가지 변수를 설정하기만 하면 프롬프트 설정 코드를 읽을 수 있게 됩니다. 내 bashrc 파일에는 다음이 있습니다.
#Set variables for foreground colors
fgRed=$(tput setaf 1) ; fgGreen=$(tput setaf 2) ; fgBlue=$(tput setaf 4)
fgMagenta=$(tput setaf 5) ; fgYellow=$(tput setaf 3) ; fgCyan=$(tput setaf 6)
fgWhite=$(tput setaf 7) ; fgBlack=$(tput setaf 0)
#Set variables for background colors
bgRed=$(tput setab 1) ; bgGreen=$(tput setab 2) ; bgBlue=$(tput setab 4)
bgMagenta=$(tput setab 5) ; bgYellow=$(tput setab 3) ; bgCyan=$(tput setab 6)
bgWhite=$(tput setab 7) ; bgBlack=$(tput setab 0)
#Set variables for font weight and text decoration
B=$(tput bold) ; U=$(tput smul) ; C=$(tput sgr0)
#NOTE: ${C} clears the current formatting
PS1="${B}${fgCyan}\u${C}@\h(bash): ${fgGreen}\w${C} > "
제 팁이 어떤 것인지 한 눈에 아실 수 있을 것 같아요. 이것이 요점입니다. 멋진 WYSIWYG 편집기가 필요하지 않습니다.
내가 사용하는 이유tput
예, 휴대성이 더 좋아야 합니다. 추가 보너스로 를 사용 tput
하면 .echo $PS1
PS1
이것은 왜 작동하지 않는지에 대한 대답이 아닙니다. 하지만 이렇게 프롬프트를 설정하면 확실히 그 불쾌한 오류를 없앨 수 있을 것입니다.