11

Я хотел бы убрать отображение тильды в переменной 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).

3 ответа3

10

bash запускает расширения в командной строке; просто убедитесь, что избежали их.

PS1='\h:$(pwd)\n$'
1

Вам не нужно запускать столько команд, сколько вы показали в своем примере. bash предоставляет ярлыки для большинства вещей, которые вы упомянули.

Ваш пример:

PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$

можно переписать как:

PS1='\e[4;35m\t\e[24m\u@\h:\w\e[m\n'

Где \t показывает время (в 24-часовом формате), \u показывает текущее имя пользователя, '\h' показывает имя хоста - страница руководства bash обсуждает это, а остальные экранированные символы доступны для вашего приглашения.

Даже если вы расширите ~ до полного пути, если вы не знаете, какой пользователь запускает команду, и вы регулярно переключаете пользователей, вы можете создать проблемы с правами доступа к файлам или исполняемым файлам.

0

Я использую настройки ниже в моем файле .bash_profile

$ export PS1='\e[1;34m\D{%T %d.%m.%Y} \[\033[00;39m\]\u\[\033[00;32m\]@$IP:\[\033[00;33m\]$(pwd)/\n\\$\[\033[00m\] '

21:40:08 14.12.2017 vmware@10.112.202.228:/home/vmware/Downloads/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .