Bash의 다중 단어 별칭

Bash의 다중 단어 별칭

내 .bashrc에 여러 단어로 된 별칭을 추가하려고 합니다. 좀 더 구체적으로 말하면 나는 apt update되고 싶다 sudo apt update -y. 하지만 여러 단어로 구성된 별칭을 지정하는 방법을 모르겠습니다. 다음을 시도했지만 그 중 아무 것도 작동하지 않습니다.

alias 'apt update'='sudo apt update -y'
alias "apt update"='sudo apt update -y'
alias apt\ update='sudo apt update -y'

이 문제에 대한 해결책을 아는 사람이 있나요?

감사해요.

답변1

알겠습니다.

$ alias 'apt update'='sudo apt update -y'
bash: alias: 'apt update': invalid alias name

이것은 분명한 것 같습니다.

마찬가지로 이름에 공백이 포함된 함수나 명령을 사용할 수 없습니다. 또는 가능하지만 사용할 때 공백을 이스케이프 처리해야 하는데 이는 재미가 없습니다.

간단한 수정은 다른 이름을 사용하는 것입니다. 예를 들어 다음과 같이 작동합니다.

alias apt-update='sudo apt update -y'

또는 정말로 원한다면 apt두 번째 단어(첫 번째 인수)를 확인하는 함수를 만들 수도 있습니다. 이는 별칭과 마찬가지로 가 되어야 하며 apt update foo다른 sudo apt update -y foo명령은 그대로 실행됩니다.

apt() {
    if [ "$1" = "update" ]; then
        shift        # eat the 'update'
        sudo apt update -y "$@"
    else 
        command apt "$@"
    fi
}

( apt update물론 어떤 매개변수도 허용되지 않지만 다른 유사한 매개변수에 전달할 수도 있습니다.)

관련 정보