erro Bashrc PS1

1

Eu criei um bom PS1 para o bash com link , mas algo parece dar errado. O emulador de terminal mostra alguns caracteres aleatórios, o que significa que PS1 provavelmente possui um erro de sintaxe. O mais estranho é que ele funcionará depois de eu editá-lo (com nano). Se eu adicionar um espaço, removê-lo, salvá-lo e executar o bash, ele funciona bem. Mas quando eu faço logout e loga no agai, n é buggy e estranho novamente. Este é o meu .bashrc:

#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'

#PS1='[\u@\h \W]\$ '
PS1="\[$(tput sgr0)\]3[38;5;15m3[38;5;14m\u\[$(tput sgr0)\]3[38;5;15m3[38;5;15m \[$(tput sgr0)\]3[38;5;15m3[38;5;10m\w\[$(tput sgr0)\]3[38;5;15m3[38;5;15m \
\[$(tput sgr0)\]3[38;5;15m3[38;5;14m\$\[$(tput sgr0)\]3[38;5;15m3[38;5;15m \[$(tput sgr0)\]"
    
por Wietse de Vries 18.05.2015 / 22:33

1 resposta

2

Eu recomendo apenas criar manualmente o prompt você mesmo. Tudo o que você precisa fazer é configurar algumas variáveis e, em seguida, seu código para definir o prompt se torna legível. No meu arquivo bashrc, eu tenho isto:

#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} > "

Aposto que você pode ver rapidamente como é o meu prompt. E esse é o ponto; não são necessários editores WYSIWYG sofisticados.

O motivo pelo qual eu uso tput é que é suposto ser mais portátil. E como um bônus adicional, usar tput faz com que, quando você digitar echo $PS1 no prompt de comando, ele mostre uma versão formatada / colorida de PS1 .

Isso não responde exatamente porque o seu não está funcionando. Mas se você configurar seu prompt desse jeito, você definitivamente conseguirá se livrar desse erro irritante.

    
por 18.05.2015 / 22:45