Não é assim que bash
aliases funcionam, todos os parâmetros psoitional nos bash
aliases são indicados no final do comando, em vez do local que você definiu. Para superar isso, você precisa usar as funções bash
.
Um exemplo deixará você mais claro:
$ cat file.txt
foo
$ cat bar.txt
foobar
spamegg
$ grep -f file.txt bar.txt
foobar
$ alias foo='grep -f "" bar.txt' ## Alias 'foo'
$ foo file.txt
grep: : No such file or directory
$ spam () { grep -f "" bar.txt ;} ## Function 'spam'
$ spam file.txt
foobar
Como você pode ver, o primeiro argumento no caso do alias foo
está sendo adicionado no final, então o comando foo file.txt
está sendo expandido para:
grep -f "" bar.txt file.txt
enquanto no caso da função spam
o comando está sendo corretamente expandido para:
grep -f file.txt bar.txt
Então, no seu caso, você pode definir uma função como:
gr () { xmgrace -legend load -nxy "$@" -free -noask & ;}