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.