Indicador de shell que se basa en la ubicación en el sistema de archivos

Tengo que trabajar dentro de tres directorios principales bajo el sistema de archivos raíz: inicio / nombre de usuario, proyecto y cero. Quiero que mi indicador de shell muestre en cuál de estos directorios de nivel superior estoy.

Esto es lo que estoy tratando de hacer:

top_level_dir ()
{
    if [[ "${PWD}" == *home* ]]
    then
        echo "home";
    elif [[ "${PWD}" == *scratch* ]]
    then
        echo "scratch";
    elif [[ "${PWD}" == *project* ]]
    then
        echo "project";
    fi

}

Luego, exporto PS1 como:

export PS1='$(top_level_dir) : '

Lamentablemente esto no funciona como yo quiero. yo obtengohome : para mi aviso cuando estoy en mi directorio personal, pero si cambio a scratch o proyectos, el aviso no cambia. No entiendo muy bien el bash scripting, así que agradecería cualquier ayuda para corregir mi código.

Respuestas a la pregunta(2)

Su respuesta a la pregunta