根据是否设置了环境变量更改 bash 提示
Change bash prompt depending on if environment variable is set
我正在尝试制作一个 PS1,它会在设置环境变量时发生变化
我试过这两种方法都没有成功:
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\] "
和
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\] "
设置环境变量并重新获取 .bashrc 会更新提示。
试试这个:
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 $"
演示
2 $
checking TEST-var
TEST is empty!
2 $export TEST="hello"
checking TEST-var
TEST is not empty
1 $
我正在尝试制作一个 PS1,它会在设置环境变量时发生变化
我试过这两种方法都没有成功:
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\] "
和
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\] "
设置环境变量并重新获取 .bashrc 会更新提示。
试试这个:
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 $"
演示
2 $
checking TEST-var
TEST is empty!
2 $export TEST="hello"
checking TEST-var
TEST is not empty
1 $