Bash:缓存命令导致别名?

标签 bash caching alias

我在 bash 中有一个别名,如下所示:

alias bblog="ssh -t  bbdev tail -f /var/logs/bb/stdout-stderr-`date \"+%Y%m%d\"`.log"

它工作正常,除非时钟转到第二天(午夜过后),我必须重新运行 bblog 以跟踪下一个日志。但是 date\"+%Y%m%d\" 仍然返回前一个日期。它似乎缓存了值。所以它仍然拖着以前的日志。

有什么想法吗?谢谢

最佳答案

将别名放在单引号中,这会在使用时抑制反引号评估。

alias bblog='ssh -t  bbdev tail -f /var/logs/bb/stdout-stderr-`date "+%Y%m%d"`.log'

我建议使用 $() 而不是反引号,因为它更容易理解逻辑。

一个更简单的使用示例是:

alias foo='echo $(date)'

argle:~$ foo
Fri Apr 26 10:29:14 IST 2013
argle:~$ foo
Fri Apr 26 10:29:15 IST 2013

关于Bash:缓存命令导致别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232931/

相关文章:

java - asp的应用程序对象java相当于什么?

jakarta-ee - JCache API (JSR 107) 是 Java EE 的一部分吗?

linux - 一次循环两个变量的shell脚本

bash - 进程退出时未传递 SIGCHLD

bash - bash shell 脚本中的 "set -o noglob"

hibernate - 获取一个懒惰的一对多列表的 child

sql - 别名在 sql server 2008 r2 上不起作用

linux - sh文件没有在cron ubuntu上运行

java - 缓存 Set 时最好的标识符是什么? Set的hashCode计算什么时候发生?

c++ - 使用 vs typedef 的别名