可以通过“alias”命令传递参数吗?

可以通过“alias”命令传递参数吗?

我想知道是否可以使用别名命令传递参数。

例如:

alias d="dmesg|grep -iw usb|tail -5" 

现在 d 将打印最后 5 行。如果我想使用 d 打印不同的行数,我必须再次更改 d 的别名命令声明。

有什么方法可以修改别名命令的声明,这样我就不必重新输入声明来更改行数。就像在声明 d 的别名时合并传递行数作为参数一样,还是有其他方法来解决这个问题?

答案1

参数可以通过“别名”传递吗

不。别名是简单的字符串替换。

使用函数。

d(){
   dmesg|grep -iw usb|tail -"$1" 
}

答案2

在这种情况下 - 是的,你可以作为例外,因为你的参数是最后一个:

alias d='dmesg | grep -iw usb | tail'
d -5

应该管用。

答案3

您使用哪种外壳?在 zsh 中,参数可以这样传递 -

d () {
    dmesg|grep -iw usb|tail -$1
}

别名总是用长字符串替换短字符串。

相关内容