bash와 zsh에서 값은 PS1
그대로 프롬프트로 사용되지 않으며 일부 확장됩니다. 규칙은 두 개의 쉘 대해 다르지만, 두 경우 모두에서, 단계들 중 하나는 통상 셸 구문과 동일한 구문 "달러"확장 (가변 치환, 명령 치환, 산술 평가)를 수행한다 ( , , 또는 , , ) .$VARIABLE
${VARIABLE}
$(COMMAND)
`COMMAND`
$((EXPRESSION))
$[EXPRESSION]
온 프롬프트에 달러 팽창으로 PS1='$(pwd)'
세트 PS1
6 문자 값에 $(pwd)
따라서 발생 및 $(pwd)
치환되어야하고, 따라서 pwd
마다 새로운 셸 프롬프트 표시 명령이 실행된다. 반면에 당시 쉘의 현재 작업 디렉토리는 무엇이든 PS1=$(pwd)
설정 PS1
합니다. 달러 확장을 끈 PS1='$(pwd)'
경우 프롬프트가 리터럴 문자열이 $(pwd)
됩니다.
프롬프트에서 작업 디렉토리를 얻는 더 편리한 방법이 있습니다.
- 배쉬에서는,와 백 슬래시 이스케이프 등
\w
으로 홈 디렉토리를 abbreviates, ~
및 설정에 의해 손질 할 수있다 PROMPT_DIRTRIM
.
- zsh을에서, 함께 %의 탈출 등
%/
또는%~
( %/
동일로 $PWD
, %~
홈 디렉토리를 abbreviates) 트리밍 설정을 할 수있는.
- 하나의 셸 (및 다른 Bourne 스타일 셸)
$PWD
은 다음과 같습니다 $(pwd)
. 현재 작업 디렉토리를 얻기 위해 하위 프로세스를 실행할 필요가 없습니다.