2012-03-06 1 views

Répondre

2

Vous pouvez créer une fonction dans votre .bashrc qui remplace la commande cd:

+0

Utilisez '" $ @ "' au lieu de '" $ * "' pour éviter les problèmes de citation. –

3

On dirait que vous voulez trouver .myapprc chaque fois que vous changez de répertoire.

Il y a deux possibilités que vous pouvez utiliser - PROMPT_COMMAND, et le piège DEBUG.

Pour ce faire, avec le premier, vous courrais ce qui suit une fois:

PROMPT_COMMAND="[ -f .myapprc ] && . .myapprc" 

et avec la seconde:

trap "[ -f .myapprc ] && . .myapprc" DEBUG 

Ceux-ci seront la source le fichier une fois pour chaque message, si l'approvisionnement de ce fichier est coûteux, vous pouvez l'étendre pour vérifier si $PWD a changé.

Vous pouvez également remplacer cd, mais cela peut casser quelques scripts shell:

alias cd=cd_ 
function cd_ 
{ 
    \cd "[email protected]" 
    local ret=$? 
    [ -f .myapprc ] && . .myapprc 
    return $ret 
} 

Mais faire un de ces est vraiment pas une bonne idée - hey're tous les trous énormes de sécurité puisque vous ll finira par exécuter toutes les commandes .myapprc quel que soit votre répertoire de travail actuel.


modifier dernière minute pour Joachim - Utilisez ceci avec les PROMPT_COMMAND/trap solutions peuvent éviter l'exécution excessive de .myapprc ce qui suit: PROMPT_COMMAND='if [ -f .myapprc -a "$PWD" != "$PWDLAST" ]; then PWDLAST="$PWD"; source .myapprc; fi'


+1

+1 pour mentionner le risque de sécurité –

1

Vous pouvez personnaliser votre environnement en fonction de votre répertoire de travail avec direnv. C'est au http://direnv.net.

+0

Le site est en panne. – Alagu

+0

On dirait qu'il a déménagé à github. Essayez https://github.com/zimbatm/direnv – rlduffy

Questions connexes