별칭 설명

별칭 설명

에 여러 개의 별칭이 있습니다 .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 dirc dirc

cd별칭은 간단한 텍스트 교체를 수행하므로 정의한 대로 작동하지 않습니다. .aliases cd dir로 확장하는 것은 cd; ls -r --time=atime dir명령에 더 짧은 이름을 제공하거나 또는 같은 기본 옵션을 제공하는 것으로 거의 제한 alias c=cd됩니다 alias cp='cp -i'. 여러 명령 실행과 같은 더 복잡한 작업에는 함수를 사용하세요.

cd () {
  command cd "$@" &&
  ls -r --time=atime
}

당신은 또한 볼 수 있습니다별칭, 함수, 스크립트,별칭에 매개변수를 전달하는 방법은 무엇입니까?.

관련 정보