후행 슬래시를 추가하도록 pwd 명령을 다시 프로그래밍할 수 있습니까?

후행 슬래시를 추가하도록 pwd 명령을 다시 프로그래밍할 수 있습니까?

명령 을 사용하면 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"
}

* 더 좋음 = 복잡한 참조를 피하면서도 예상대로 작동합니다.

관련 정보