我正在尝试在日志条目前面添加一个时间戳,但是生成的时间戳似乎不会随着时间的推移而改变:
#!/bin/sh
NOW=$(date +"%Y-%m-%d %H:%M:%S")
echo "$NOW Logging something"
sleep 2
echo "$NOW Logging something else"
的输出为:
2012-03-02 12:32:49 Logging something
2012-03-02 12:32:49 Logging something else
有人知道我做错什么了吗?
答案1
比较并对比:
echo "`date +"%Y-%m-%d %H:%M:%S"` 记录某些内容" 睡眠2 echo "`date +"%Y-%m-%d %H:%M:%S"` 记录其他内容"
在您的版本中,NOW 被定义为该时间一次,并且在脚本运行的其余时间内保持不变。上面,日期是在“回显”时生成的。
如果您不想每次都添加日期,可以使用以下函数:
/bin/sh #!/bin/sh 复制代码 对数测试() { 回显“`日期 +”%Y-%m-%d%H:%M:%S“`$ 1” } logtest“记录一些内容” 睡眠2 logtest“记录其他内容”
答案2
旧logger
命令有什么问题?:)
#!/bin/sh
logger -t yourprogram Hello, this is a message
sleep 2
logger -t yourprogram Hello, this is another message
记录器还允许您使用系统日志优先级。
答案3
声明变量时,仅创建一次时间戳。它将不会自动更新。
尝试这个:
echo `date +"%Y-%m-%d %H:%M:%S"` "Logging something"