Gagan Asked: 2021-09-29 04:00:51 +0800 CST2021-09-29 04:00:51 +0800 CST 2021-09-29 04:00:51 +0800 CST bash中的多词别名 772 我正在尝试在我的 .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' 有人知道解决这个问题的方法吗? 谢谢你。 bash alias 1 个回答 Voted Best Answer ilkkachu 2021-09-29T04:09:16+08:002021-09-29T04:09:16+08:00 好吧,我明白了: $ 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不接受参数,但您可能希望能够将它们传递给其他类似的参数。)
好吧,我明白了:
这似乎很清楚。
同样,您不能在名称中包含带有空格的函数或命令……或者,您可以,但是在使用它们时您必须转义空格,这不好玩。
简单的解决方法是使用另一个名称,例如这应该有效:
或者,如果您真的想要,您也可以创建
apt
一个检查第二个单词(第一个参数)的函数。这应该apt update foo
变成sudo apt update -y foo
,就像别名一样;并将按原样运行任何其他命令:(当然
apt update
不接受参数,但您可能希望能够将它们传递给其他类似的参数。)