Perché il terminale OS X necessita di un sourcing manuale per visualizzare il colore?

5

Ho il seguente nel mio file ~/.bash_profile :

export CLICOLOR=1
export PS1="$FBLU[\#]$RS--$RS{\t}$RS$FWHT\W$RS$FMAG@$RS$FRED\u$RS$FCYN\$$RS$FBLU>>>$RS"
# ANSI color codes
RS="\[3[0m\]" # reset
HC="\[3[1m\]" # hicolor
UL="\[3[4m\]" # underline
INV="\[3[7m\]" # inverse background and foreground
FBLK="\[3[30m\]" # foreground black
FRED="\[3[31m\]" # foreground red
FGRN="\[3[32m\]" # foreground green
FYEL="\[3[33m\]" # foreground yellow
FBLU="\[3[34m\]" # foreground blue
FMAG="\[3[35m\]" # foreground magenta
FCYN="\[3[36m\]" # foreground cyan
FWHT="\[3[37m\]" # foreground white
BBLK="\[3[40m\]" # background black
BRED="\[3[41m\]" # background red
BGRN="\[3[42m\]" # background green
BYEL="\[3[43m\]" # background yellow
BBLE="\[3[44m\]" # background blue
BMAG="\[3[45m\]" # background magenta
BCYN="\[3[46m\]" # background cyan
BWHT="\[3[47m\]" # background white

alias ls="ls -l"
function cd() { builtin cd "$@" && ls -l; }

Quando apro il terminale, ottengo:

[1]--{08:20:18}~@mike$>>>

che dimostra che la formattazione funziona. Tuttavia, mi viene richiesto di caricare il file .bash_profile ogni volta che il terminale viene eseguito in modo che i colori vengano visualizzati correttamente:

. ~/.bash_profile

Perché sta succedendo questo? Cosa posso fare in modo che i colori vengano visualizzati ogni volta che viene eseguito il terminale?

Ho anche eseguito lo stile terminale Peppermint , anche se sto avendo lo stesso problema senza - potrebbe avere qualcosa a che fare con questo?

    
posta Mike Roberts 15.06.2015 - 09:29
fonte

1 risposta

8

Le variabili di colore devono essere definite prima del export PS1 . Ora, quando chiami $RS su quella linea, quella variabile è vuota. Prova in questo modo:

export CLICOLOR=1

# ANSI color codes
RS="\[3[0m\]" # reset
HC="\[3[1m\]" # hicolor
UL="\[3[4m\]" # underline
INV="\[3[7m\]" # inverse background and foreground
FBLK="\[3[30m\]" # foreground black
FRED="\[3[31m\]" # foreground red
FGRN="\[3[32m\]" # foreground green
FYEL="\[3[33m\]" # foreground yellow
FBLU="\[3[34m\]" # foreground blue
FMAG="\[3[35m\]" # foreground magenta
FCYN="\[3[36m\]" # foreground cyan
FWHT="\[3[37m\]" # foreground white
BBLK="\[3[40m\]" # background black
BRED="\[3[41m\]" # background red
BGRN="\[3[42m\]" # background green
BYEL="\[3[43m\]" # background yellow
BBLE="\[3[44m\]" # background blue
BMAG="\[3[45m\]" # background magenta
BCYN="\[3[46m\]" # background cyan
BWHT="\[3[47m\]" # background white

export PS1="$FBLU[\#]$RS--$RS{\t}$RS$FWHT\W$RS$FMAG@$RS$FRED\u$RS$FCYN\$$RS$FBLU>>>$RS"

alias ls="ls -l"
function cd() { builtin cd "$@" && ls -l; }
    
risposta data 15.06.2015 - 10:51
fonte

Leggi altre domande sui tag