명령 을 사용하면 pwd
예 /opt
를 들어 /opt/
후행 슬래시를 인쇄하고 싶습니다. 그러나 파일에 다음 줄을 추가해 보았습니다 ~/.bash_aliases
.
alias pwd=" echo "${PWD}/" "
하지만 제대로 작동하지 않습니다. 후행 슬래시를 사용하여 현재 작업 디렉터리를 인쇄하는 대신 현재 작업 디렉터리를 인쇄합니다.터미널 세션 시작 시, 또는 마지막으로 source ~/.bashrc
명령을 실행했을 때. 예를 들어 명령에 다른 이름을 지정하더라도 cwd
여전히 이 방식으로 실행됩니다.
그래서 제 질문은, 현재 작업 디렉터리 뒤에 슬래시가 오는 별칭을 어떻게든 얻을 수 있다는 것입니다.
감사해요.
답변1
문제는 $PWD
별칭 정의의 일부가 인용되지 않았다는 것입니다(이전의 큰따옴표로 묶인 문자열을 닫고 $PWD
새 문자열을 시작합니다). 이는 별칭이 정의될 때 평가된다는 의미입니다.
대신 작은따옴표를 사용하세요.전반적인별칭 리터럴 또는 더 나은 * 은 쉘 기능을 사용하여 pwd
명령을 재정의합니다.
다음과 같이(또는 echo
필요한 경우 사용):
alias pwd='printf "%s/\n" "$PWD"'
또는 셸 함수를 사용하세요.
pwd () {
printf '%s/\n' "$PWD"
}
* 더 좋음 = 복잡한 참조를 피하면서도 예상대로 작동합니다.