Wie erhält man ~/.bashrc
Aliase, um $()
Substitutionen zur Laufzeit auszuwerten , anstatt zum Zeitpunkt der Ausführung von ~ / .bashrc (beim Öffnen eines Terminals)?
Ich führe diesen Befehl oft genug aus, um einen Alias dafür hinzuzufügen:
svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff
Wenn ich es jedoch ~/.bashrc
als Alias hinzufüge , sehe ich, dass die Auswertungen fest auf die Werte codiert sind, die sie zum Zeitpunkt des Öffnens des Terminals hatten:
$ alias
alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff'
Wenn ich ein Terminal öffne, ~
erhalte ich folgende Fehler:
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'
$
Ich habe diese beiden Variationen des Alias ausprobiert. ~/.bashrc
Beide haben den gleichen Effekt (wie ich erwartet hatte):
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"
Wie erhält man ~/.bashrc
Aliase, um $()
Substitutionen zur Laufzeit zu bewerten ?
Wie würde man außerdem in Google nach dieser Situation suchen? Ich habe versucht, auf "bashrc substitution", "bashrc lazy substitution" und andere Schlüsselbegriffe zu googeln, aber ich habe nichts gefunden, was meiner Meinung nach häufig genug sein sollte, um Informationen zu finden.
alias cdp="cd ~/projects"
. Das geht in einem Shell-Skript nicht.
$HOME/bin
in dasPATH
Verzeichnis gestellt, wenn Sie heutzutage ein solches Verzeichnis haben.