通常はを使用しますXX 2>error.log
が、デバッグ目的で次の構文を好みます。
function XX()
{
redirect_io_to "error.log"
}
そのような構文を使用できますか?
一部のショートカットを使用して、行にコメントを付けたりコメントを解除したりするようにVIMを設定し、コメントを付けたりコメントを解除したりするのが便利です。
答え1
うん、でもあまりきれいじゃない。
ファイルにexec 2> error.log
送信できますstderr
問題は、整理して復元する必要がstderr
あるため、関数の一番下で行う必要があるため、端末に戻りますexec 2>&1
。stderr
function XX()
{
exec 2> error.log
foo bar
exec 2>&1
}
exec 2>&1
引き続き使用しても問題にならないので、最初の項目にコメントを付けてコメントを削除するだけですexec
。
または、リダイレクトが自動的にクリアされるように、関数全体をサブシェルで実行させることもできます(以下の例の角括弧はサブシェルを起動します)。
function XX()
{ (
exec 2> error.log
foo bar
) }
最後に、簡単にコメントを付けたり、コメントを削除したりできるエイリアス定義を作成して、関数宣言の前に配置することができます。
alias XX='XX 2> error.log'
function XX()
{
foo bar
}
答え2
いいえ、でもいつでも好きなものをブロックに積み重ねることができます。
function XX() {
(
some
commands
here
) 2>error.log
}