0

シェル スクリプト内に多くのシステム コマンドがあり、それぞれが stdout または stderr にコンテンツを返すと考えてみましょう。

すべてのコマンドのリダイレクトを個別に実行する代わりに、シェル スクリプトから生成されたすべての stdout または stderr をログ ファイルにリダイレクトする方法はありますか?

4

1 に答える 1

3

明らかに簡単な解決策は、使用することです

./scriptfile.sh > foo.log

したがって、スクリプトファイル内で生成されたすべての stdout は foo.log に移動します

ただし、あなたの質問は、スクリプトを使用して機能するソリューションに向けられていると思います。exec コマンドを使用して、ファイル記述子を特定のファイルに (再) 送信できます (次のスニペットの 2 行目は、stdout を foo.log にリダイレクトします)。

#!/bin/sh
exec 1>>foo.log

echo blue
echo blart
于 2012-11-06T07:55:37.787 に答える