Comment obtenir des ~/.bashrc
alias pour évaluer les $()
substitutions au moment de l'exécution , plutôt qu'au moment où ~ / .bashrc est exécuté (lors de l'ouverture d'un terminal)?
J'exécute cette commande assez souvent pour que je souhaite lui ajouter un alias:
svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff
Cependant, lorsque je l'ajoute à ~/.bashrc
un alias, je vois que les évaluations sont codées en dur aux valeurs qu'elles avaient au moment où j'ai ouvert le terminal:
$ alias
alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff'
Si j'ouvre un terminal, ~
j'obtiens des erreurs:
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
$ alias
alias svnbranch='svn diff -r :HEAD | colordiff'
$
J'ai essayé ces deux variantes de l'alias dans ~/.bashrc
, elles ont toutes les deux le même effet (comme je m'y attendais):
alias svnbranch="svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff"
alias svnbranch="svn diff -r `svn info | grep ^Revision | awk {'print $2'}`:HEAD `svn info | grep ^URL | awk {'print $2'}` | colordiff"
Comment obtenir des ~/.bashrc
alias pour évaluer les $()
substitutions au moment de l'exécution ?
De plus, comment rechercher cette situation dans Google? J'ai essayé de google sur "substitution bashrc", "substitution bashrc paresseux", et d'autres phrases clés, mais je n'ai rien trouvé pour ce que je pense être un problème assez courant pour trouver des informations.
alias cdp="cd ~/projects"
. Impossible de le faire dans un script shell.
$HOME/bin
dans lePATH
si vous avez un tel répertoire de nos jours.