Настройки Bash PS1 - как вернуть текущую папку как терминальный заголовок

Я недавно добавил эти строки к своему ~/.bashrc файл для показа текущего ответвления, если я нахожусь в мерзавце рабочая папка, и это работает приятно на это. Однако то, что я потерял, - то, что имя текущей папки раньше показывалось на вкладке для терминала, который я имею открытый, и теперь это не: это всегда просто говорит 'Терминал'. Я могу вернуть это и все еще сохранить материал мерзавца? Вот рассматриваемые строки - это - второе, это - проблема, поскольку комментирующий просто вторую строку решает проблему.

source /etc/bash_completion.d/git
PS1='\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '

Я смотрел на объяснения опций для PS1, но ничего не вижу о заголовке окна терминала там. Кто-либо может советовать? спасибо, макс.

Править

Я на самом деле уже управляю PS1, чтобы иметь терминал с форматом

<rvm version and gemset> <computer name> <current folder> <git branch>

, с каждой частью в различном цвете, но я на самом деле никогда не видел документы прежде, так спасибо за ссылку на это. Моя текущая установка PS1

\[\033[0;31m\]$(__my_rvm_ruby_version)\[\033[0;33m\]\h\[\033[0;37m\]:\[\033[1;33m\]\W\[\033[1;32m\]$(__git_branch)\[\033[1;32m\]$(__git_dirty) \[\033[0;37m\]$

По-видимому, я могу сделать что-то как

export "<something> $PS1"

определять мое терминальное имя вкладки, не теряя мои существующие настройки. Я вводил по абсолютному адресу вокруг с этим, хотя и не сумели сделать это.

РЕДАКТИРОВАНИЕ - поняло, что это с помощью некоторых ответов ниже - благодарит все! Я обернул его в сценарии оболочки

#!/usr/bin/env bash
#renames the current terminal tab via the PS1 env var
source ~/.bashrc
export PS1="$PS1""\[\e]0;$1 \a\]"

это называют "renametab", таким образом, я могу теперь назвать его с, например,

source renametab mytabname

"источник" необходим для экспорта изменений в текущую оболочку: если я просто делаю renametab mytabname экспорт просто входит в подоболочку, которая уничтожается, когда сценарий заканчивается.

Еще раз спасибо все, для справки!

7
задан Max Williams 31 October 2013 в 09:58
поделиться

4 ответа

Это то, что у меня по умолчанию в моем Ubuntu в отношении названия терминала:

PS1='\[\e]0;\u@\h: \w\a\]'

Добавьте этот терминал в PS1, и все будет хорошо

{ {1}}
4
ответ дан 6 December 2019 в 21:12
поделиться

Вы можете попробовать:

PS1="$PS1"'\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '

Но было бы полезно узнать, какой PS1 установлен ранее в ~ / .bashrc или в /etc/bash.bashrc .

5
ответ дан 6 December 2019 в 21:12
поделиться

Другой способ сделать это - использовать PROMPT_COMMAND и пусть PS1 будет просто подсказкой. Например:

PROMPT_COMMAND = 'echo -ne (скрытый) echo -ne "\ 007"'

0
ответ дан 6 December 2019 в 21:12
поделиться

Я использую это:

PROMPT_COMMAND='echo -ne "\033]0;${PWD/$HOME/~} - ${USER}@${HOSTNAME}\007"'

, в результате получается такой заголовок окна:

/home/tkirk - tkirk@hostname
0
ответ дан 6 December 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: