带参数的别名

带参数的别名

我最近开始设置我的常用别名。最后我需要传递比我的别名最初需要的更多的信息

$ alias runserver = 'python manage.py runserver'
$ runserver 80  // turns out you need sudo
$ sudo runserver 80
$ sudo: runserver: command not found

现在,当我写这篇文章时,我意识到也许没有为 root 设置别名。可能是这样吗?

如果没有,有人可以解释一下为什么这不起作用吗?

谢谢,麻烦您了

答案1

注意:这个问题的正文与使用 sudo 时别名不可用


在里面上述问题另外,他们还通过为 sudo 添加别名来解决了 sudo 问题:

alias sudo='sudo '

请注意,标题具有误导性,“带参数的别名”将是一个函数。假设您的runserver别名将接受单个参数,则端口:

runserver(){ python manage.py runserver $1;}

如果runserver接受未知数量的参数,则使用以下方法传递所有参数:

runserver(){ python manage.py runserver "$@";}

对于后一种语法,请参阅bash 手册

答案2

sudo在调用 shell 中看不到别名。中的别名将以或 的形式.bashrc显示;前者是您的,后者是的。sudo -ssudo -i.bashrcroot

无论如何,更简单的方法不是吗alias runserver='sudo python manage.py runserver'

相关内容