Я хочу что-то вроде этого:
"vivek@grishma:~/xxx/yyy/zzz/src$"
быть показанным как
"vivek@grishma:datasource$"
где я так или иначе предопределил бы "источник данных", чтобы быть псевдонимом для длинного тракта выше.
использование псевдонима управляет как
" alias datasource='~/xxx/yyy/zzz/src'"
полезно для навигации, но она не вынимает длинный тракт в подсказке.
Действительно ли это возможно?
PS - Я не хочу, чтобы это было просто "vivek@grishma": как затем каждый раз я должен выполнить pwd для знания моего рабочего каталога.
Это сделает:
PS1='\u@\h:$(
case $PWD in
$HOME/xxx/yyy/zzz/src) echo "datasource ;;
*) echo "\w" ;;
esac
)\ , Который дает Вам гибкость для определения других специальных каталогов также.
Псевдонимы не помогут Вам здесь.
Для сокращения дублирования поместите всех специальных директоров в массив и использование что генерировать псевдонимы и также подсказку. Поместите все это в свой ~/.bashrc:
declare -A labels=(
[$HOME/xxx/yyy/zzz/src]=datasource
[$HOME/foo/bar]=baz
)
for path in "${!labels[@]}"; do
alias "${labels[$path]}"="$path"
done
function path_label () {
local IFS=:
if [[ ":${!labels[*]}:" == *:"$PWD":* ]]; then
# we're in a "known" dir
echo "${labels[$PWD]}"
else
return 1
fi
}
PS1='\u@\h:$( path_label || echo "\w" )\
, Который дает Вам гибкость для определения других специальных каталогов также.
Псевдонимы не помогут Вам здесь.
Для сокращения дублирования поместите всех специальных директоров в массив и использование что генерировать псевдонимы и также подсказку. Поместите все это в свой ~/.bashrc:
declare -A labels=(
[$HOME/xxx/yyy/zzz/src]=datasource
[$HOME/foo/bar]=baz
)
for path in "${!labels[@]}"; do
alias "${labels[$path]}"="$path"
done
function path_label () {
local IFS=:
if [[ ":${!labels[*]}:" == *:"$PWD":* ]]; then
# we're in a "known" dir
echo "${labels[$PWD]}"
else
return 1
fi
}
PS1='\u@\h:$( path_label || echo "\w" )\
Поместите следующие сценарии в Ваш ~/.bashrc
if [ "$(pwd)" == "$HOME/xxx/yyy/zzz/src" ]; then
PS1='\u@\h:datasource$ '
else
:
fi
, Переходят к каталогу ~/xxx/yyy/zzz/src
и изменить подсказку
. ~/.bashrc
В другом каталоге, для возвращения исходной подсказки снова получают Ваш ~/.bashrc
.
я не думаю, что Вам нужен псевдоним для этого. Всегда можно использовать псевдоним как
alias src='. ~/.bashrc'