如何为带有标志的命令创建 bash 别名?例如,如果我运行ls -l
,我希望将其别名为ls -a
。
这不起作用: alias "ls -l"="ls -a"
另一个例子:如果我输入reboot now
,我希望它简单地运行reboot
。
bash 函数在这里有用吗?
编辑:抱歉这个愚蠢的ls -l
例子。这就是我真正想要的:如果你执行了reboot now
,我希望它真正执行reboot
。这就是为什么。
答案1
另一个例子:如果我输入
reboot now
,我希望它简单地运行reboot
。
创建一个函数:
reboot() {
command reboot
}
现在调用该命令reboot
将调用该函数,reboot
该函数将忽略传递给它的所有参数。
那是:
reboot
和
reboot now
将执行命令reboot
(不带任何参数)。
答案2
你应该只是别名ls
:
alias ls='ls -a'
之后,如果你ls -l
这样做将会导致 ls -la
答案3
这就是我真正想要的:如果你执行了
reboot now
,我希望它真正执行reboot
。
找出reboot
(例如,via whereis reboot
)的绝对路径。确保/usr/local/bin
在此之前位于 $PATH 中(它可能已经在)。1 现在创建一个/usr/local/sbin/reboot
如下所示的文件:
#!/bin/sh
reboot
它应该由 root 和 拥有chmod 755 /usr/local/bin/reboot
。从现在开始,默认
reboot whatever, blah-blah
只会调用reboot
而不带参数。
1. 如果没有,请参阅本次问答。