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
相关产品推荐
相关产品推荐

