Bash
用於檢查是否有一個掛起的程序是這個 shell 的子程序的 shell 函式?
我想給我的 PS1 添加一個指示器,顯示是否有程序被 ctrl+z 掛起。為此,我需要一個能夠檢查這種情況的函式。我什至不知道從哪裡開始考慮這個問題。Google讓我失望了。有任何想法嗎?
“使用 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"