Я сократил свое приглашение bash, добавив следующий блок кода в ~/.bashrc
файл.
получить_PS1(){
локальный pwdmaxlen=30
local trunc_symbol="\[$(tput setaf 1)$(tput жирным шрифтом)\]..."
если [[ "${#PWD}" -gt "$pwdmaxlen" ]]; тогда
local right_chunk="\[$(tput setaf 4)$(tput жирным шрифтом)\]${PWD:$((${#PWD}-$pwdmaxlen)):${#PWD}}\[$(tput sgr0) \]"
PS1="${trunc_symbol}${right_chunk} \$ "
еще
PS1="\[$(tput setaf 4)$(tput жирным шрифтом)\]\$(pwd) \$\[$(tput sgr0)\] "
фи
}
PROMPT_COMMAND=get_PS1
Когда он активен, я имею в виду после исполнительный удар
, если я создам виртуальную среду с виртуальный
и впоследствии активировать его с помощью источник venv/bin/активировать
, (венв)
должен был появиться в начале приглашения bash. Нет никакого способа понять, что я запускаю виртуальную среду, хотя какой питон
на самом деле показывает, что я нахожусь в виртуальной среде.
Насколько я понимаю, это происходит только тогда, когда я использую PROMPT_COMMAND
переменная. Неважно, какую модификацию я сделал внутри get_PS1
функция, она всегда будет вести себя так. я знаю PROMPT_DIRTRIM
способ, но это не то, что я ищу.
Баш версия 5.0.17(1)-выпуск
. У меня Kubuntu 20.04.3 LTS.
Кстати, я узнал этот кодовый блок от здесь.
Спасибо. Дайте мне знать, если потребуется какая-либо другая информация.