Forzar solicitud en directorios específicos

4

¿Hay alguna forma de cambiar la solicitud en un directorio diferente en la misma máquina? Por ejemplo, quiero un mensaje simple "[\ W] \ $" en los directorios de desarrollo.

Ideas?

Konzepz
fuente
1
Depende de qué shell estés usando.
Dennis Williamson

Respuestas:

6

Puedes poner algo como esto en tu .bashrc.

prompt-function() {
    case $PWD in
        /a/dev/dir\
        |/another/dev/dir) 
            PS1="[\W] \$"
            ;;
        *)
            # Change this to the default prompt
            PS1="\$ "
            ;;
     esac
}

PROMPT_COMMAND=prompt-function
Wuffers
fuente
+1 Usaría una casedeclaración en lugar de una serie de elsifdeclaraciones. Incluso podría poner los directorios en una matriz e iterar sobre ellos con un bucle for. Podrías usar patrones globbing con cualquiera de esas técnicas o podrías usar expresiones regulares con [[ $PWD =~ $pattern ]].
Dennis Williamson el
@ Dennis: edité mi respuesta con una casedeclaración. Gracias por la sugerencia.
Wuffers
Si la acción es la misma, puede enumerar la acción una vez después de casos alternativos separados por caracteres de canalización. foo|bar) action;;Puede colocar los casos en líneas separadas colocando una barra diagonal inversa y una nueva línea antes o después del carácter de la tubería.
Dennis Williamson
@ Dennis: Edité mi respuesta en consecuencia, nuevamente. ¡Gracias por la sugerencia!
Wuffers