Как написать псевдоним для grep -R?

В итоге я печатаю

grep -Rni pattern .

и ужасно много. Как сделать это в псевдоним вроде

alias gr='grep -Rni [email protected] .'

Запуск, который дает:

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

Хотя псевдоним выглядит хорошо:

$ type gr
gr is aliased to `grep -R [email protected] .'

Кажется, что [email protected]и. get swapped при его фактическом выполнении.

Ответы

Ответ 1

сделать функцию вместо псевдонима. Сохраните его в файле, например mylibrary.sh, и всякий раз, когда вы хотите использовать эту функцию, отправьте файл

например mylibrary.sh

myfunction(){
 grep -Rni ...
}

#!/bin/bash
source mylibrary.sh
myfunction 

Ответ 2

Попробуйте следующее:

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

Это также работает:

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