在中间带有参数的情况下创建别名

我想创建一个类似于grep的别名,就像这样:
grep argX ~/myfile

argX是一个参数,而myfile始终保持不变。我该如何做到这一点?
3个回答

别名不支持位置参数,所以你需要创建一个函数(可以放在~/.bashrc中)。如果你真的想要一个别名,你可以给那个函数起一个别名。
function grepMe(){
    grep "$1" ~/myfile
}

然后,如果出于某种原因你希望有一个别名,你可以为这个函数创建一个别名。
alias grepAlias="grepMe"

3+1. 功能是更通用的别名,适用于这种情况。只是为了让信息清晰明了:你不需要创建一个别名;在命令行中使用函数名就可以了。 - mike3996

别名不支持参数,但你可以编写一个小脚本并将其命名为"filegrep"。
#!/bin/bash
grep "$1" /home/youruser/myfile

将脚本复制到/usr/bin,然后你可以在控制台中使用filegrep argX来运行它。

这里我找到了一种不使用函数的替代方法:

alias grepAlias='bash -xc '\''grep $0 ~/myfile'\'''

例如使用Silver Searcher
alias superlocate='bash -xc '\''ag -g $0 --hidden'\'' 2>/dev/null'