Frage Befehl in .bash_profile gibt veraltetes Ergebnis zurück [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Die Datei .bash_profile hat den folgenden Aliasnamen.

~# cat .bash_profile
# other commands
alias btcblock="echo $(bitcoin-cli getblockcount 2>&1)/$(wget -O - http://blockchain.info/q/getblockcount 2>/dev/null)"

Aber wenn ich den Befehl und kurz danach den Alias ​​ausführen, sind die angezeigten Ergebnisse unterschiedlich, wie unten:

~# echo $(bitcoin-cli getblockcount 2>&1)/$(wget -O - http://blockchain.info/q/getblockcount 2>/dev/null)
503967/534428
~# btcblock
503839/534428

Es ist, als ob die Ergebnisse von Alias ​​immer veraltet sind. Irgendeine Idee, warum es passiert?


1
2017-07-30 18:58


Ursprung




Antworten:


In dem Befehl alias btcblock="echo $(...)/$(...)", die Zwei $()s werden ausgeführt und interpoliert wenn der Alias ​​definiert istweil das so ist "..." Zitate arbeiten.

Du wolltest wahrscheinlich schreiben alias btcblock='echo $(...)/$(...)'mit ' (einfache Anführungszeichen) statt " (Anführungszeichen).


3
2017-07-30 19:02