我最后输入
grep -Rni pattern .
很可惜。如何将其变为像这样的别名
alias gr='grep -Rni $@ .'
运行它给出:
$ gr pattern
grep: pattern: No such file or directory
即使别名看起来很好:
$ type gr
gr is aliased to `grep -R $@ .'
好像是$ @和。在实际执行时进行交换。
答案 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