2012-08-29 41 views
6

Me gustaría una variable disponible mi shell bash similar a pwd pero igual a una sección del directorio de trabajo actual, en lugar de la ruta completa.Establezca una variable bash cada vez que cambie el directorio

es decir,

$PWD=/a/b/c/d/e/f 
$PATH_SECT=c/d/e 

que tienen un indicador que muestra este camino ya, pero me gustaría actualizar una variable en el entorno de este valor cada vez que cambio de directorio.

¿Cómo podría hacer esto?

+0

¿Necesita esta variable de entorno sólo para su pronta fiesta o para utilizarlo en su comandos también? – jolivier

+0

Quiero ser capaz de ejecutar comandos en el shell usando la variable. – Tom

Respuesta

5

Puede usar la función promptcmd. Desde man bash, aprendemos que esta función se ejecuta justo antes de mostrar el mensaje. Está vacío por defecto (o mejor dicho, no definido).

Un ejemplo sencillo:

promptcmd(){ 
    local p=$(pwd) 
    PATH_SECT=${p/\/a\/b\/} 
} 
1

Puede utilizar un alias y una función en su .bashrc:

alias cd="supercd" # call the function 
function supercd(){ 
    builtin cd "[email protected]" # original cd 
    PATH_SECT=$(pwd) # or whatever 
} 
Cuestiones relacionadas