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

关于实现Bash脚本倒计时暂停/恢复功能的技术问询

实现带暂停/恢复功能的Git Bash倒计时调度脚本

我刚好搞定过类似的需求,下面这个脚本完全符合你的要求——打开Git Bash后显示倒计时提示,支持用户随时暂停/恢复,无人干预时自动执行目标脚本。

完整脚本代码

#!/bin/bash

# 可配置参数
COUNT_DOWN=60
TARGET_SCRIPT="./your-target-script.sh"  # 替换成你的目标脚本实际路径

# 初始化状态变量
remaining=$COUNT_DOWN
paused=0

# 显示操作提示
echo "The script is about to start in $COUNT_DOWN seconds."
echo "Press 'p' to pause, 'r' to resume, or wait for automatic execution."
echo ""

# 倒计时主循环
while [ $remaining -gt 0 ]; do
    # 未暂停时,更新并显示剩余时间
    if [ $paused -eq 0 ]; then
        # 用\r实现单行刷新,避免终端输出刷屏
        echo -ne "Remaining time: $remaining seconds\033[0K\r"
        sleep 1
        remaining=$((remaining - 1))
    fi

    # 每秒监听一次用户输入(超时1秒,不阻塞倒计时)
    read -t 1 -n 1 key
    if [ $? -eq 0 ]; then
        case $key in
            p|P)
                if [ $paused -eq 0 ]; then
                    paused=1
                    echo -ne "\nCountdown paused. Press 'r' to resume.\033[0K\n"
                fi
                ;;
            r|R)
                if [ $paused -eq 1 ]; then
                    paused=0
                    echo -ne "Resuming countdown... Remaining: $remaining seconds\033[0K\n"
                fi
                ;;
            *)
                echo -ne "\nInvalid input. Only 'p' (pause) and 'r' (resume) are allowed.\033[0K\n"
                ;;
        esac
    fi
done

# 倒计时结束,执行目标脚本
echo -ne "\nCountdown complete! Executing target script...\033[0K\n"
exec "$TARGET_SCRIPT"

关键功能说明

  • 单行刷新倒计时:用echo -ne结合\r实现剩余时间的实时单行更新,不会让终端被一堆倒计时信息刷屏,体验更清爽。
  • 无阻塞输入监听:read -t 1 -n 1 key设置1秒超时,每秒检查一次用户输入,既不耽误倒计时,又能及时响应操作。
  • 暂停/恢复逻辑:用paused变量标记状态,暂停时停止倒计时,恢复后从当前剩余时间继续。
  • 容错处理:对无效输入给出明确提示,避免用户困惑。

使用步骤

  1. 将上述代码保存为countdown-launcher.sh(名字随便取)。
  2. 在Git Bash里给脚本添加执行权限:chmod +x countdown-launcher.sh。
  3. 修改脚本里的TARGET_SCRIPT为你实际要运行的脚本路径(绝对路径或相对路径都可以)。
  4. 运行脚本:./countdown-launcher.sh。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:46:16