Isso fará:
PS1='\u@\h:$(
case $PWD in
$HOME/xxx/yyy/zzz/src) echo "datasource ;;
*) echo "\w" ;;
esac
)$'
Isso dá a você a flexibilidade de definir outros diretórios especiais também.
Os aliases não o ajudarão aqui.
Para reduzir a duplicação, coloque todos os seus diretórios especiais em uma matriz e use-a para gerar seus aliases e também seu prompt. Coloque tudo isso no seu ~ / .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" )$'