我目前正在尝试使用脚本将其他已启动命令的输出正确写入日志文件.该脚本将使用echo将其自己的消息写入日志文件,并且有一种方法可以管理来自其他程序的行.
主要的问题是,生成输出的程序是在后台启动的,所以我执行读取的函数可以写入日志文件.这可能是个问题吗?Echo总是只写一行,所以不应该很难确保原子性.但是我已经查看了谷歌,我发现没有办法确保它实际上是原子的.
这是当前的脚本:
LOG_FILE=/path/to/logfile
write_log() {
echo "$(date +%Y%m%d%H%M%S);$1" >> ${LOG_FILE}
}
write_output() {
while read data; do
write_log "Message from SUB process: [ $data ]"
done
}
write_log "Script started"
# do some stuff
call_complicated_program 2>&1 | write_output &
SUB_PID=$!
#do some more stuff
write_log "Script exiting"
wait $SUB_PID
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,脚本既可以自己编写,也可以编写重定向输出.这会导致文件中的havok吗?
make如果源md5校验和已更改(而不是编辑时间),是否可以告诉仅构建目标?
我正在使用make编译我的.tex文件,我需要阻止它一直两次构建所有文件.
我尝试过使用Scons,但我觉得这不适应我的其他需求.