シェル スクリプト内に多くのシステム コマンドがあり、それぞれが stdout または stderr にコンテンツを返すと考えてみましょう。
すべてのコマンドのリダイレクトを個別に実行する代わりに、シェル スクリプトから生成されたすべての stdout または stderr をログ ファイルにリダイレクトする方法はありますか?
シェル スクリプト内に多くのシステム コマンドがあり、それぞれが stdout または stderr にコンテンツを返すと考えてみましょう。
すべてのコマンドのリダイレクトを個別に実行する代わりに、シェル スクリプトから生成されたすべての stdout または stderr をログ ファイルにリダイレクトする方法はありますか?
明らかに簡単な解決策は、使用することです
./scriptfile.sh > foo.log
したがって、スクリプトファイル内で生成されたすべての stdout は foo.log に移動します
ただし、あなたの質問は、スクリプトを使用して機能するソリューションに向けられていると思います。exec コマンドを使用して、ファイル記述子を特定のファイルに (再) 送信できます (次のスニペットの 2 行目は、stdout を foo.log にリダイレクトします)。
#!/bin/sh
exec 1>>foo.log
echo blue
echo blart