
Ctrl + Zで一時停止したプロセスがあるかどうかを示すインジケータをPS1に追加したいと思います。これには、この状況を確認する機能が必要です。私はこれについてどこから考えるべきかさえ知りません。 Googleは私を失望させた。どんなアイデアがありますか?
答え1
「Ctrl + Zで中断されたプロセス」は、実際には「このシェルの子プロセスによって中断されたプロセス」のサブセットであり、追跡がより簡単です。これは、中断されたバックグラウンドジョブがあることを意味します。
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"