首页 > 解决方案 > 将参数传递给 bash 别名

问题描述

我似乎无法创建一个接受参数的 bash 别名。这是我放入 .bashrc 文件的内容:

别名测试='历史 | grep "$1"

这是我在终端中输入的内容:

测试历史

这就是我得到的:

grep:历史:没有这样的文件或目录

我怎样才能解决这个问题?

标签: bash

解决方案


bashalias不允许直接使用参数(位置参数)。您可以通过声明一个函数然后为该函数起别名来获取参数。

在你的情况下,你可以做(​​在你的.bashrc):

showhist() {
    [ -z "$1" ] && { printf "usage:  hist <search term>\n"; return 1; }
    history | grep "$1"
    return 0
}

其次是:

alias hist='showhist'

然后只需hist searchterm在命令行上使用。


推荐阅读