You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac OS向bcl logchain上传日志脚本疑问:sleep 1m是否可行?

关于sh环境中sleep参数的问题

在sh环境下,sleep 1m是无效的,必须替换成sleep 60,原因如下:

  • POSIX标准的sleep命令仅接受纯数字的秒数作为参数,不支持1m这类带时间单位的写法。
  • macOS默认的sh遵循POSIX标准(实际是bash以POSIX兼容模式运行),无法识别m(分钟)这类单位后缀。
  • 只有bash、zsh这类非POSIX shell的内置sleep,或是GNU版本的sleep工具,才支持1m、1h这类带单位的参数。

额外优化建议

  1. 避免日志重复上传:当前log show --last 1m会每次获取最近1分钟的全部日志,两次执行之间会有重叠内容。可以记录每次执行的时间,下次用--start参数指定起始时间,比如:
#!/bin/sh
last_run=$(date +%Y-%m-%d\ %H:%M:%S)
while true
do
    current_time=$(date +%Y-%m-%d\ %H:%M:%S)
    log show --start "$last_run" --end "$current_time" | sh bcl.sh
    last_run="$current_time"
    sleep 60
done
  1. 减少请求次数:逐条上传日志会产生大量HTTP请求,建议先将日志内容批量写入临时文件,再一次性上传,降低服务器压力。

内容的提问来源于stack exchange,提问作者echkourine25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 05:42:44