tcsh で、.aliases ファイルのコマンドから STDERR をリダイレクトしようとしています。
このようにコマンドラインから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
$
誰でも解決策を提供できますか? 前もって感謝します!
更新: .aliases から tcsh の STDERR をリダイレクトできるかどうかはまだ知りませんが、ここで提案されているように、最終的にはシェル スクリプトになりました。
#!/bin/sh
# wrapper script to suppress messages sent to STDERR on launch
# from the command line.
/usr/bin/xemacs "$@" 2>/dev/null