Colored PS1 string
Posted
by
Will Vousden
on Super User
See other posts from Super User
or by Will Vousden
Published on 2012-09-17T20:04:12Z
Indexed on
2012/09/17
21:42 UTC
Read the original article
Hit count: 269
Clarification: I want __foo
to be executed each time the PS1 string is presented in the terminal, not when the PS1 string is constructed (hence its being in quotes). __foo
contains logic that examines the current directory, so its execution must be deferred.
I'm trying to use different colours in my Bash PS1 string from within a Bash function:
LIGHTRED="\033[1;31m"
LIGHTGREEN="\033[1;32m"
RESET="\033[m"
__foo () {
# Do some stuff and genereate a string to echo in different colours:
echo -n '\['$1'\]firstcolour \['$2'\]secondcolour'
}
PS1='$(__foo '$LIGHTRED' '$LIGHTGREEN')\['$RESET'\] \$'
Essentially I want __foo
to generate part of the PS1 in a bunch of different colours. My attempt doesn't seem to work, though; it produces the following output:
-bash: 31m: command not found
-bash: 32m: command not found
\[]firstcolour \[\]secondcolour $
What gives, and how can I fix it?
© Super User or respective owner