我正在尝试在 .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
不接受参数,但您可能希望能够将它们传递给其他类似的参数。)