这是我在我的上创建的别名~/.bashrc
:
alias rand="echo $(curl -s https://whatthecommit.com/index.txt)"
如果您输入此 URL,它只会按照预期在每次请求时返回一条随机消息。
但是如果你从命令行使用此别名:
rand
它总是返回相同的消息,而不是发出新的 http 请求,就好像它由于某种原因缓存了以前的结果一样。
但是,如果你直接在终端上调用它:
echo $(curl -s https://whatthecommit.com/index.txt)
每次它都会发出不同的呼叫。
为什么会发生这种情况?如何解决?
答案1
alias rand="echo \$(curl -s https://whatthecommit.com/index.txt)"
将会做您想要的;如果没有它,\
它将只执行$(...)
一次,
当别名被“定义”时,而不是像使用它时那样(稍后,您想要的)。
在命令行上使用两种变体定义别名
,然后alias
在每个变体后面键入
,您将看到并实现效果。