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

Android 12+下Shell脚本Spinner显示PID的去除方法求助

解决Shell脚本后台进程PID输出问题

你遇到的[1] 17823这类输出是Shell启动后台作业时默认打印的作业编号与进程ID。要消除这个输出,只需将后台进程的标准输出和标准错误重定向到/dev/null即可。

修改后的完整脚本如下:

#!/system/bin/sh

# the spinner function
spinner() { 
    # show the spinner
    (
        while :; do 
            for c in / - \\ \|; do 
                printf '%s\b' "$c"; 
                sleep 0.025; 
            done; 
        done
    )&>/dev/null & 
    
    # sleep the length of time specified when calling this
    sleep $(($1-1)); 
    
    # backspace and kill the process
    { 
        printf '\b'; 
        kill $! && wait $!; 
    } 2>/dev/null 
}

# call it!
spinner 5

修改说明

核心改动是将后台进程启动语句的末尾从)&改为)&>/dev/null &:

  • &>/dev/null 表示把该后台进程的标准输出(stdout)和标准错误(stderr)都重定向到空设备,直接丢弃所有输出
  • 保留最后的&让进程在后台运行

这样修改后,脚本运行时就不会再输出作业号和PID信息,只会正常显示Spinner动画。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:52:06