如何为grep -R写一个别名?

时间:2010-04-12 09:46:32

标签: bash grep

我最后输入

grep -Rni pattern .
很可惜。如何将其变为像

这样的别名
alias gr='grep -Rni $@ .'

运行它给出:

$ gr pattern
grep: pattern: No such file or directory

即使别名看起来很好:

$ type gr
gr is aliased to `grep -R $@ .'
好像是$ @和。在实际执行时进行交换。

2 个答案:

答案 0 :(得分:22)

试试这个:

$ alias gr='grep -Rnif /dev/stdin . <<<'
$ gr pattern
./path/file:42:    here is the pattern you were looking for

这也有效:

$ alias gr='grep -Rnif - . <<<'

答案 1 :(得分:5)

创建一个函数而不是别名。将其保存在文件中,例如mylibrary.sh,每当您想使用该功能时,请将文件

例如mylibrary.sh

myfunction(){
 grep -Rni ...
}

#!/bin/bash
source mylibrary.sh
myfunction