Моя машина Turnkeylinux использует следующую переменную среды PS1 для приглашения bash:
PS1="${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u@\h \[\033[01;34m\]$(promptpath)\[\033[00m\]\$"
Я подключил это к тому, что по сути является стандартным «Debian GNU / Linux 6.0 \ n \ l», и он пожаловался на недоступность «promptpath».
Я попробовал "which promptpath", и результат был NULL (ничего не нашел). Поскольку подсказка не похоже на программу, что это такое?
Что мне нужно сделать, чтобы подсказка была доступна на стандартной машине Debian, чтобы подсказка работала без каких-либо изменений?
Я заглянул в свой ~/.bashrc
а promptpath - это своего рода пользовательская функция.
# Set prompt path to max 2 levels for best compromise of readability and usefulness
promptpath () {
realpwd=$(realpath $PWD)
realhome=$(realpath $HOME)
# if we are in the home directory
if echo $realpwd | grep -q "^$realhome"; then
path=$(echo $realpwd | sed "s|^$realhome|\~|")
if [ $path = "~" ] || [ $(dirname $path) = "~" ]; then
echo $path
else
echo $(basename $(dirname $path))/$(basename $path)
fi
return
fi
path_dir=$(dirname $PWD)
# if our parent dir is a top-level directory, don't mangle it
if [ $(dirname $path_dir) = "/" ]; then
echo $PWD
else
path_parent=$(basename $path_dir)
path_base=$(basename $PWD)
echo $path_parent/$path_base
fi
}
Я просто скопировал TurnkeyLinux ~/.bashrc
на мою машину Debian.