在bash典型提示符是這樣的:顯示作業計數提示只有當非零
PS1="\[email protected]\h:\w\$ "
的可以顯示使用\j
的後臺作業的數量,例如:
PS1="\[email protected]\h:\w [\j]\$ "
哪是有用的,因爲我偶爾會忘記我有一個停止的工作,只有當我手動從shell註銷時發出抱怨時纔會注意。
但是,95%的時間,後臺作業計數爲0,並在提示符中顯示它是多餘的。
如何在提示中顯示作業計數,但僅在非零時才顯示作業計數?
在bash典型提示符是這樣的:顯示作業計數提示只有當非零
PS1="\[email protected]\h:\w\$ "
的可以顯示使用\j
的後臺作業的數量,例如:
PS1="\[email protected]\h:\w [\j]\$ "
哪是有用的,因爲我偶爾會忘記我有一個停止的工作,只有當我手動從shell註銷時發出抱怨時纔會注意。
但是,95%的時間,後臺作業計數爲0,並在提示符中顯示它是多餘的。
如何在提示中顯示作業計數,但僅在非零時才顯示作業計數?
您可以做這樣的事情:
PS1='\[email protected]\h:\w $([ \j -gt 0 ] && echo [\j])\$ '
接受的答案不適用於我(我有Bash v4.2.46)。它拋出這樣的錯誤:
[: \j: integer expression expected
我不得不用PROMPT_COMMAND來實現相同的功能:
export PROMPT_COMMAND=__prompt_command
function __prompt_command() {
local JOBS=$(jobs | wc -l | tr -d 0)
PS1="\[email protected]\h:\w [${JOBS}]\$ "
}
注意,這表明停止**和**運行作業(雖然區別可能並不重要給你) – ashirley