Я пытаюсь использовать функцию, которая сокращает мою подсказку bash. Я добавил его в .bash_profile
:
function last_two_dirs {
pwd |rev| awk -F / '{print $1,$2}' | rev | sed s_\ _/_
}
export PS1='$(last_two_dirs) $(__git_ps1) ➡ '
Но я получаю сообщение об ошибке bash: rev: command not found
каждый раз, когда запускаю git bash.
Я правильно установил PATH
, так как другие команды работают правильно, кроме rev
. Разве rev
не является частью git bash? Или есть какой-либо другой способ показать только родительский и текущий каталог для приглашения bash?
ОС: Windows 10
4 ответа
Это код, который работал для меня -
PROMPT_COMMAND='case $PWD in
$HOME) HPWD="~";;
$HOME/*/*) HPWD="${PWD#"${PWD%/*/*}/"}";;
$HOME/*) HPWD="~/${PWD##*/}";;
/*/*/*) HPWD="${PWD#"${PWD%/*/*}/"}";;
*) HPWD="$PWD";;
esac'
PS1='$HPWD \$'
По ссылке.
В вашей среде нет команды rev
. Однако вам это не нужно, есть встроенные средства для того, что вы хотите сделать.
Чтобы получить текущий рабочий каталог в своем PS1
, используйте $PROMPT_DIRTRIM
переменную количество конечных каталогов для сохранения:
PROMPT_DIRTRIM=2
Это даст вам подсказку, как
~/.../subdir/subsubdir$
function last_two_dirs ()
{
awk -F/ '{print ((NF>1)?$(NF-1)"/":"")""$NF}' <<< $PWD
}
Вы можете просто использовать
pwd | sed -r 's|.*/([^/]+/[^/]+)$|\1|'
Вместо
Похожие вопросы
Новые вопросы
bash
Для вопросов о скриптах, написанных для командной оболочки Bash. Для сценариев оболочки с ошибками / синтаксическими ошибками, пожалуйста, проверьте их с помощью программы shellcheck (или на сервере веб-проверки оболочки по адресу https://shellcheck.net) перед размещением здесь. Вопросы об интерактивном использовании Bash, скорее всего, будут касаться темы Super User, а не переполнения стека.