в tcsh Я пытаюсь перенаправить STDERR из команды из моего файла .aliases.
Я обнаружил, что могу перенаправить STDERR из командной строки следующим образом. , .
$ (xemacs > /dev/tty) >& /dev/null
. , , но когда я помещаю это в мой файл .aliases, я получаю цикл псевдонимов. , .
$ cat .aliases
alias xemacs '(xemacs > /dev/tty ) >& /dev/null'
$ xemacs &
Alias loop.
$
. , , поэтому я ставлю обратную косую черту перед командой в .aliases, что позволяет запускать команду. , .
$ cat .aliases
alias xemacs '(\xemacs > /dev/tty ) >& /dev/null'
$ xemacs &
[1] 17295
$
. , , но теперь я не могу дать команде никаких аргументов:
$ xemacs foo.txt &
Badly placed ()'s.
[1] Done ( \xemacs > /dev/tty ) >& /dev/null
$
Может кто-нибудь предложить какие-либо решения? Заранее спасибо!
ОБНОВЛЕНИЕ: мне все еще любопытно, можно ли перенаправить STDERR в tcsh из .aliases, но, как было предложено здесь, я закончил со скриптом оболочки:
#!/bin/sh
# wrapper script to suppress messages sent to STDERR on launch
# from the command line.
/usr/bin/xemacs "$@" 2>/dev/null