我想知道是否可以使用别名命令传递参数。
例如:
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
}
别名总是用长字符串替换短字符串。