Reputation: 3561
I'm trying to make a PS1 which changes when an environment variable is set
I've tried these two ways without success:
PS1_EMOJI=🚀
update_ps1_emoji() {
if [ "$ENV_VAR" != "" ]; then
PS1_EMOJI=🐳
fi
}
PROMPT_COMMAND='update_ps1_emoji'
export PS1="\[\e[0;35m\]$PS1_EMOJI [\W]\$?\[\e[m\e[0;31m\]$\[\e[m\] "
And
ps1_emoji() {
if [ "$ENV_VAR" != "" ]; then
echo -n "🐳"
else
echo -n "🚀"
fi
}
export PS1="\[\e[0;35m\]`ps1_emoji` [\W]\$?\[\e[m\e[0;31m\]$\[\e[m\] "
Setting the environment variable and re-sourcing .bashrc updates the prompt though.
Upvotes: 1
Views: 1117
Reputation:
try this:
export PS1_EMOJI=1
ps1_emoji() {
echo "checking TEST-var"
if [ -z "$TEST" ]; then
echo "TEST is empty!"
export PS1_EMOJI=2
else
echo "TEST is not empty"
export PS1_EMOJI=1
fi
}
PROMPT_COMMAND='ps1_emoji'
export PS1="\$PS1_EMOJI $"
demo
2 $
checking TEST-var
TEST is empty!
2 $export TEST="hello"
checking TEST-var
TEST is not empty
1 $
Upvotes: 5