2012-08-29 27 views
6

Vorrei una variabile disponibile la mia shell bash simile a pwd ma uguale a una sezione della directory di lavoro corrente, piuttosto che l'intero percorso.Imposta una variabile bash ogni volta che la directory cambia

cioè

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

Ho una richiesta che visualizza già questo percorso, ma vorrei aggiornare una variabile nell'ambiente a questo valore ogni volta che cambio directory.

Come posso fare questo?

+0

Avete bisogno di questa variabile di ambiente solo per il prompt bash o per utilizzarlo nella vostra comandi anche? – jolivier

+0

Voglio essere in grado di eseguire comandi nella shell utilizzando la variabile. – Tom

risposta

5

È possibile utilizzare la funzione promptcmd. Da man bash apprendiamo che questa funzione viene eseguita appena prima di mostrare il prompt. È vuoto di default (o meglio, non definito).

Un semplice esempio:

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

È possibile utilizzare un alias e una funzione nel vostro .bashrc:

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