이 별칭은 다음과 같은 경우에는 제대로 작동 /bin/csh
하지만 다음 경우에는 작동하지 않습니다 /bin/bash
.
alias cd='chdir !* && setprompt; clear; ls -F'
기본적으로 나는 cd
어떤 디렉토리와 ls
색상도 원합니다.
답변1
그것이 무엇인지 잘 모르겠지만 setprompt
별칭 in은 별칭 bash
과 같은 csh
매개 변수를 허용 하지 않습니다(사용 !*
). 셸에서의 앨리어싱은 bash
앨리어싱보다 훨씬 간단하며 csh
명령줄에 대한 기본 텍스트 대체 도구와 동등한 기능만 제공합니다.
대신 유틸리티를 오버로드하는 짧은 쉘 함수를 작성할 수 있습니다 cd
.
cd () {
command cd "$1" && clear && ls -F
}
아니면 한 줄로,
cd () { command cd "$1" && clear && ls -F; }
이 셸 함수 선언은 에서 별칭을 선언할 때마다 나타납니다 bash
(아마도 ~/.bashrc
).
함수에서 사용할 수 있는 하나의 매개변수를 사용합니다 "$1"
. command cd
이것을 인수로 사용하여 호출됩니다 . command cd
대신에 cd
쉘 함수를 재귀적으로 호출하는 것을 피하기 위해 사용합니다 .
이 cd
명령은 디렉토리를 변경하고 성공할 경우 clear
호출되어 디렉토리 목록을 생성하는 데 사용됩니다 ls -F
.