我想在我的 PS1 上添加一个指示器,显示是否有通过 ctrl+z 暂停的进程。为此,我需要一个能够检查这种情况的函数。我什至不知道从哪里开始思考这个问题。谷歌让我失望了。有任何想法吗?
答案1
“使用 Ctrl+Z 挂起的进程”实际上是“该 shell 的子进程的挂起进程”的子集,并且更容易跟踪:这意味着有一个挂起的后台作业。
在 zsh 中,您可以检查jobstates
大批。
if ((${(M)#jobstates:#suspended:*} == 0)); then
echo There are no suspended jobs
else
echo There are ${(M)#jobstates:#suspended:*} suspended jobs
fi
在 bash 或 zsh 中,jobs -s
仅列出挂起的作业。
echo "There are $(jobs -s | wc -l) suspended jobs"