Bash

是否可以自定義提示以顯示是否有任何後台作業?

  • April 1, 2022

是否可以自定義 bash 提示以顯示是否有任何後台作業?我發現很容易忘記有後台工作。

說如果提示是…

$

有沒有辦法讓它顯示後台作業的數量?例如,如果有兩個後台作業使用 發送到後台CTRL+Z,則提示將是…

2 $

輸入\j你的提示。從bash 手冊

\j 目前由 shell 管理的作業數


請記住,提示確實會過時並且作業可以隨時完成,因此如果您讓終端處於空閒狀態,您將需要重新顯示提示。


以需要額外的過程來列印提示為代價,\j如果存在任何作業,您可以只顯示。

PROMPT_COMMAND='hasjobs=$(jobs -p)'
PS1='${hasjobs:+\j }\$ '

在 zsh 中,您可以使用%j指示作業"%1(j.%j.)"數,如果至少有一個正在執行,則顯示作業數,否則不顯示(而不是 0)。例如。RPROMPT="%1(j.%j.)"在右側的提示中顯示它。手冊中的更多資訊這個 SO answer

引用自:https://unix.stackexchange.com/questions/35728