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 foosudo apt update -y foo就像别名一样;并将按原样运行任何其他命令:

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

(当然apt update不接受参数,但您可能希望能够将它们传递给其他类似的参数。)

相关内容