linux

alias 别名命令时候,如何支持传参?

linux 有些发行版本会有 ll 命令。但是系统中是不存在这个命令脚本的。ll 实际上是命令 ls -l 的别名。在执行 ll 时候实际上执行的是 ls -l 。系统里已经配置好了这条命令 alias ll='ls -l'

有时候我们想要别名的命令特别长(并且需要添加一些动态的内容)怎么办?比如我想这样做:
通过 pp 2 取代 ping 192.168.0.2
通过 pp 3 取代 ping 192.168.0.3

也就是说我想这样:alias pp='ping 192.168.0.$1'

事实上 alias 不支持传递参数( alias 无法识别 $1 ),我们可以通过函数来接收参数。

最终解决方案:alias pp='func(){ ping 192.168.0.$1; };func'

再看一个例子

cd ~
vi .bashrc
alias xxxx='func(){ pw$1; };func'

xxxx d
/home/ubuntu

发表评论