사용자가 실행하려는 명령을 실행하기 전에 다른 명령을 실행하십시오.

사용자가 실행하려는 명령을 실행하기 전에 다른 명령을 실행하십시오.

ls도구의 원래 동작을 다음과 같이 수정하고 싶다고 가정해 보겠습니다 .

$ ls
Hello World
file1 file2 ...

어떻게 해야 하나요?

실행할 때 ls다른 명령을 실행하고 싶습니다 echo "Hello World!".

내가 본 빠른 해결책은 별칭을 사용하는 것입니다.

alias orig_ls="ls"
alias ls='echo "Hello World!"'

그러나 실행 orig_ls하면 "Hello World!".

답변1

때때로 별칭은 원하는 작업을 쉽게 수행할 만큼 강력하지 않으므로 별칭을 사용하지 않는 방법이 있습니다.

쉘이 시작될 때 제공되는 일부 파일(예 .bashrc: )에 다음 함수를 추가하십시오.

ls () {
    echo "Hello world!"
    command ls "$@"
}

별칭과 달리 함수는 반복될 수 있습니다. 그렇기 때문에 ; command ls대신에 이 사용됩니다 ls. ls방금 정의한 함수 대신 실제 함수를 사용하도록 쉘에 지시합니다 .

답변2

전화하는 것을 잊지 마세요 ls.

alias ls='echo "Hello World!"; ls'

관련 정보