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

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

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대신 is 를 사용하면 방금 정의한 함수 대신 ls실제 함수를 사용하도록 쉘에 지시합니다 .ls

답변2

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

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

관련 정보