将时间附加到日志文件名

将时间附加到日志文件名

我想将 log_files 命名为log_Jan_01_hh:mm:ss,因此变量时间戳定义为date +"%b_%d_%T"
现在,如果我将值设置为变量:

setenv now `date +"%b_%d_%T"`

然后$now变量在那一刻确实得到值更新,因此所有时间日志文件都具有相同的名称。

我怎样做才能让它$now的价值每时每刻都刷新?

答案1

如果您只在 中存储一个字符串$now,并在调用它时添加反引号,您将获得当前日期:

[~]% setenv now 'date +"%b_%d_%T"'

[~]% echo $now
date +"%b_%d_%T"

[~]% echo `$now`
"Dec_03_13:09:52"

[~]% echo `$now`
"Dec_03_13:09:54"

这实际上与执行以下操作相同:

[~]% echo `date +"%b_%d_%T"`

没有办法告诉tcsh重新评估调用变量的命令;您将一个字符串分配给$now,并且tcsh无法知道生成该字符串的命令是什么。
另一个(可能的)解决方案可能是使用函数,但tcsh也缺少这些......

答案2

添加到您的 crontab,并每分钟运行一次。

crontab -e

插入这样一行:

* * * * * setenv now 'date +"%b_%d_%T"'

保存并退出。您的变量将每分钟更新一次。

相关内容