bashrc: 별칭과 함수 - 여러 명령에서 cd를 호출하는 것의 차이점

bashrc: 별칭과 함수 - 여러 명령에서 cd를 호출하는 것의 차이점

.bashrc에 다음과 같은 별칭을 정의하면:

alias cd="cd $1 && ls"

전화하면:

cd test

테스트 디렉터리의 파일은 올바르게 표시되지만 현재 디렉터리는 변경되지 않습니다.

.bashrc에 함수를 정의하는 경우:

function cd {
 cd "$1" && ls
}

이제 내가 전화하면

cd test

테스트 디렉터리의 파일을 올바르게 표시하고 현재 디렉터리를 "test"로 변경합니다.

차이점이 무엇인지 아시는 분 계신가요?

답변1

실제로 확장 후 첫 번째 별칭 호출 예에서는 다음과 같습니다.

cd test ---> cd $1 && ls test

이것이 bash 스크립트 호출과 별칭 확장의 기본적인 차이점입니다! 별칭을 사용하면 별칭으로 정의된 모든 문자 뒤에 매개변수가 기록됩니다. 대신에 단어를 사용하지 않고 문자 그대로 사용 $1됩니다 . test별칭 정의에서 명령 순서를 변경하면 이를 간단히 확인할 수 있습니다.

alias cd="ls $1 && cd"

올바른 디렉토리 변경을 제공하지만 디렉토리 목록은 없습니다.

관련 정보