백그라운드 작업이 있는지 표시하도록 프롬프트를 사용자 정의할 수 있습니까?

백그라운드 작업이 있는지 표시하도록 프롬프트를 사용자 정의할 수 있습니까?

백그라운드 작업이 있는지 표시하기 위해 bash 프롬프트를 사용자 정의할 수 있습니까? 백그라운드 작업이 있다는 사실을 쉽게 잊어버립니다.

프롬프트가 다음과 같다면...

$

백그라운드 작업 수를 표시하는 방법이 있습니까? 예를 들어, 를 사용하여 백그라운드로 전송된 두 개의 백그라운드 작업이 있는 경우 CTRL+Z프롬프트는 다음과 같습니다.

2 $

답변1

\j프롬프트를 입력 하세요 . 로부터배쉬 매뉴얼:

\j 현재 셸에서 관리하는 작업 수


프롬프트는 오래되고 작업은 언제든지 완료될 수 있으므로 터미널을 유휴 상태로 놔둔 경우 프롬프트를 다시 표시해야 한다는 점을 기억하세요.


프롬프트를 인쇄하는 데만 추가 프로세스가 필요한 대신 \j작업이 있는 경우에만 표시되도록 할 수 있습니다.

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

답변2

%jzsh에서는 작업 수를 표시하는 데 사용하고 "%1(j.%j.)", 실행 중인 작업이 하나 이상 있는 경우 작업 수를 표시하고, 그렇지 않으면 아무것도 표시하지 않습니다(0 대신). 예. RPROMPT="%1(j.%j.)"오른쪽 프롬프트에 표시합니다.자세한 내용은 설명서를 참조하세요.그리고이 SO 답변.

관련 정보