.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"
올바른 디렉토리 변경을 제공하지만 디렉토리 목록은 없습니다.