에 여러 개의 별칭이 있습니다 .bash_aliases
. 별칭을 다음과 같이 정의 했지만 c
제대로 작동하지 않습니다.
...
alias cd='cd; ls -r --time=atime'
alias c='cd'
...
그 안에 줄이 있습니다 .bashrc
:
alias ls='clear; ls --color=auto'
Commandnand는 c
이제 오류를 출력합니다. 와 동일한 출력을 제공해야 합니다
cd; clear; ls -r --time=atime --color=auto
.
기타 질문: 제가 이 글을 입력하는 동안 cd dir
저는 안에 있어야 하는데 결국 dir
그 안에 들어가게 되었습니다.$HOME
이 문제를 해결하고 별칭 정의를 개선하려면 어떻게 해야 합니까? .bash_aliases
로 설명 되었다 regular grammar
?
답변1
대신 함수를 사용하면 매개변수를 전달하고 구문을 더 명확하게 할 수 있다는 장점이 있습니다.
function cd() {
command cd "$@"
ls -r --time=atime
}
function c() {
cd "$@"
}
function ls() {
clear
command ls --color=auto "$@"
}
( 동일한 이름의 기능이 아닌 실제 명령을 참조하기 위해 사용되는 내장 명령 command
입니다 .)bash
답변2
c
와 정확히 동일해야 합니다 . from 과 동일한 오류가 cd
표시될 것으로 예상됩니다 .cd dir
c dir
c
cd
별칭은 간단한 텍스트 교체를 수행하므로 정의한 대로 작동하지 않습니다. .aliases cd dir
로 확장하는 것은 cd; ls -r --time=atime dir
명령에 더 짧은 이름을 제공하거나 또는 같은 기본 옵션을 제공하는 것으로 거의 제한 alias c=cd
됩니다 alias cp='cp -i'
. 여러 명령 실행과 같은 더 복잡한 작업에는 함수를 사용하세요.
cd () {
command cd "$@" &&
ls -r --time=atime
}
당신은 또한 볼 수 있습니다별칭, 함수, 스크립트,별칭에 매개변수를 전달하는 방법은 무엇입니까?.