Я хотел бы убрать отображение тильды в переменной PS1.
Моя текущая строка PS1:
PS1="\h:\w\n$"
И приглашение выглядит так:
lnx-hladky:/tmp/plugtmp
$
Мне не нравится, что каталог $ HOME отображается как тильда. Можно ли этого избежать?
Это вызывает проблемы, пример:
lnx-hladky:~/DOC
$
Документация гласит:
\w : the current working directory, with $HOME abbreviated with a tilde
\W: the basename of the current working directory, with $HOME abbreviated with a tilde
Есть ли возможность избежать сокращения $ HOME тильдой?
Я нашел один способ обойти, но я чувствую, что это слишком сложно:
PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$
Кто-нибудь может предложить лучшее решение? У меня такое чувство, что не совсем нормально запускать так много команд, чтобы получить подсказку. (Дата, Whoami, имя хоста, PWD).
command-line
bash
unix
Jirka
источник
источник
Ответы:
bash запускает расширения в командной строке; просто убедитесь, что избежали их.
источник
pwd
при каждом запросе. Решение Денниса не делает, просто выбирает переменную окружения PWD, которая намного дешевле.pwd
это встроенный Bash. Утверждение, что${PWD}
«намного дешевле», чем$(pwd)
без доказательств.Вам не нужно запускать столько команд, сколько вы показали в своем примере.
bash
предоставляет ярлыки для большинства вещей, которые вы упомянули.Ваш пример:
можно переписать как:
Где
\t
показывает время (в 24-часовом формате),\u
показывает текущее имя пользователя, '\ h' показывает имя хоста - наbash
странице руководства обсуждаются эти и остальные экранированные символы, доступные для вашего приглашения.Даже если вы развернете
~
полный путь, если вы не знаете, какой пользователь запускает команду, и вы регулярно переключаете пользователей, вы можете создать проблемы с правами доступа к файлам или исполняемым файлам.источник
\u
чтобы я знал, кто я. Не забудьте принять ответ Игнасио - установите флажок слева от вопроса.Я использую настройки ниже в моем файле .bash_profile
источник