Невозможно динамически добавить escape-последовательности для "PS1"
Скажем, я хочу включить escape-последовательность динамически:
if [ -n $something ]; then
user="\u"
else
user="admin"
fi
PS1='$user@\h$ '
Проблема в том, что вместо ввода имени пользователя моя подсказка выглядит так:
\u@ubuntu-1$
Даже если я уйду от обратной косой черты (user="\\u"
) он все еще не распечатывает имя пользователя. Как мне получить приглашение выглядеть так:
andreas@ubuntu-1$
1 ответ
Решение
Используйте двойные кавычки, когда вы пытаетесь интерполировать переменные и хотите, чтобы они расширялись.
У вас также есть другой вариант, вместо того, чтобы иметь дело с \u
и осложнения, когда интерпретация этого происходит.
if [ -n $something ]; then
user=`whoami`
else
user="admin"
fi
PS1="$user@\h$ "