为什么需要使用包含 $(date -u +%Y%m%d) 的别名每日重新加载 .zshrc?

为什么需要使用包含 $(date -u +%Y%m%d) 的别名每日重新加载 .zshrc?

每天早上我都会运行以下命令来跟踪每天创建的日志文件:

ssh -t [email protected] tail -f development/abc/$(date -u +%Y%m%d).log

这工作得很好,每天早上,当天的日志文件都会被跟踪,没有任何问题。上周五,我在 .zshrc 中为此命令创建了以下别名,周五它完美运行:

alias abc_log='ssh -t [email protected] tail -f development/abc/$(date -u +%Y%m%d).log'

今天早上我运行 abc_log 并返回了以下错误:

    tail: cannot open `development/abc/20160509.log' for reading: No such file or directory
Connection to 55.555.55.55 closed.

一旦我跑了,source ~/.zshrcabc_log可以正常工作了。我不想每天早上都重新加载 .zshrc。建议?谢谢!

答案1

嵌入date命令只会被评估一次:创建别名时。这就是重新加载 .zshrc 使其再次工作的原因。如果您按照 djf 建议使用函数,则每次都会对其进行评估,这似乎是您的预期行为。

相关内容