我有一个小脚本,crontab每天使用以下命令调用它:
/homedir/MyScript &> some_log.log
Run Code Online (Sandbox Code Playgroud)
此方法的问题是some_log.log仅在MyScript完成后创建.我希望在程序运行时将程序的输出刷新到文件中,这样我就能做到这样的事情
tail -f some_log.log
Run Code Online (Sandbox Code Playgroud)
并跟踪进度等
在bash/ksh中我们可以为STDERR重定向添加时间戳吗?
例如myscript.sh 2> error.log
我想在日志上写一个时间戳.
我正在编写一个脚本,它执行如下操作:
echo -n "Doing stuff, wait for it... "
do_stuff
(($?==0)) && echo SUCCESS || echo FAILURE
Run Code Online (Sandbox Code Playgroud)
请原谅糟糕的 bash 技能。无论如何,问题是该行的第一部分在do_stuff完成之前不会被打印 - 虽然对我来说用户知道我接下来要运行什么很重要。对我来说也很重要,因为我很迂腐,不打印换行符。因此,文本位于缓冲区中并且不会被刷新。
这个问题非常相似,但是OP对事情基本上是满意的。我不是。如果到了紧要关头,我什至愿意使用与诅咒相关的东西(但请记住,这毕竟是一个 shell 脚本)。
是否有相当于fflush()shell命令的C函数?
echo "kkkk"
flush <<< are there some command to execute to flush stdout?
Run Code Online (Sandbox Code Playgroud)