Команда в .bash_profile возвращает устаревший результат [дубликат]

Файл .bash_profile имеет псевдоним, указанный ниже.

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

Но если Я запускаю команду и вскоре после этого псевдоним показывает другие результаты, как показано ниже:

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

Это похоже на то, что результаты псевдонима всегда устарели. Есть идеи, почему это происходит?

1
задан 30 July 2018 в 21:58

1 ответ

В команде alias btcblock="echo $(...)/$(...)", два $()s выполнены и интерполированы, когда псевдоним определяется, потому что это то, как "..." заключение в кавычки работ.

Вы, вероятно, хотели записать alias btcblock='echo $(...)/$(...)', с ' (одинарные кавычки) вместо " (двойные кавычки).

3
ответ дан 3 December 2019 в 07:23

Другие вопросы по тегам:

Похожие вопросы: