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

Linux下使用sleep命令时如何查看进度状态?

实现sleep命令期间显示进度(非循环sleep 1秒方式)

可以实现,以下是两种无需拆分sleep为多次1秒等待的方案:

方案一:利用pv命令生成进度条

pv(Pipe Viewer)是一款用于监控数据传输进度的工具,我们可以借助它模拟sleep的进度显示:

# 后台执行sleep 10并记录进程ID
sleep 10 & pid=$!
# 用pv读取空设备,设置总时长为10秒,显示时间和进度条
pv -t -p -s 10 < /dev/null
# 确保sleep进程已结束(若pv提前完成则杀掉)
kill $pid 2>/dev/null

参数说明:

  • -t:显示已运行时间
  • -p:显示进度条
  • -s 10:设置总数据大小为10(对应10秒时长)

执行后终端会实时显示进度条和已流逝时间,直到10秒结束。

方案二:监控sleep进程的运行时长并实时输出

通过ps命令获取sleep进程的已运行时长,配合短间隔等待更新状态(避免拆分sleep为1秒循环):

sleep 10 & pid=$!
# 循环检查sleep进程是否存活
while kill -0 $pid 2>/dev/null; do
    # 获取进程已运行的秒数
    elapsed=$(ps -o etimes= -p $pid)
    # 实时更新输出(回车符覆盖当前行)
    echo -ne "进度: $elapsed/10秒\r"
    # 用0.5秒间隔更新,避免频繁输出
    sleep 0.5
done
# 换行显示完成提示
echo -e "\nsleep 10 执行完成"

这种方式不会拆分原有的sleep命令,只是通过后台监控输出进度,且等待间隔小于1秒,进度显示更平滑。

注意:若系统未安装pv,可通过包管理器安装,比如Debian/Ubuntu用sudo apt install pv,CentOS/RHEL用sudo yum install pv。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:22:35