Bash 매뉴얼에서 (제어 프롬프트)1):
\j the number of jobs currently managed by the shell.
\$ If the effective uid is 0, #, otherwise $.
내가 원하는 것PS1
로 설정되어 있습니다
[some-string] $
일이 없을 때;
[some-string]2 $
직업이 2개일 때.
어떻게 해야 하나요?
가능하다면 솔루션은 기본 Bash 확장 및 Bash 내장만큼 간단할 수 있습니다.
답변1
screen
Bash는 프롬프트( 예: IIRC) 에서 조건을 지원하지 않는다고 생각 하지만 명령 대체를 사용하여 \j
일부 논리를 추가할 수 있습니다.
anyjobs() { [[ "$1" != 0 ]] && echo "[ $1 bg job(s) ] "; }
PS1='$? $(anyjobs \j)\u@\h \w\$ '
이것은 Bash와 관련된 하위 쉘을 실행 fork()
하지만 이 문제를 해결할 방법이 없습니다.
일반적으로 에서 변수를 설정하여 하위 쉘을 피할 수 있지만 PROMPT_COMMAND
거기에서 작업 수를 얻는 쉬운 방법은 없습니다.