0

私は travis-ci を使用して、バージョン 7.8 から Linux を構築しています。ログファイルが 4 メガバイトを超えるため、ビルド中に travis-ci がエラーをスローします。lfs-auto、ビルド #15で確認できます

ここで、すべてのデータを stdout から /dev/null にリダイレクトして、ログ ファイルのサイズを縮小したいと考えています。通常、人々は各コマンドのリダイレクト操作をdev/nullとして使用します。しかし、そうするとシェルスクリプトが長くなりすぎて読みにくくなります

その問題を解決するアイデアを持っている人はいますか?


問題は解決しました!。コメントがあるすべてのボディに感謝します

ソリューションexec > /dev/nullを選択します。これは、そのコマンドが他の操作なしですべての出力を std から /dev/null にリダイレクトするためです。この場合、exec > /dev/nullはシンプルで、 script-file > /dev/nullまたは{ command, ... } > /dev/nullよりも編集しやすい


重複した質問を解決する

いくつかのコメントがありますが、この質問の内容は、スクリプト自体内でシェル スクリプト全体の出力をリダイレクトするにはどうすればよいですか?と同じです。複数のコマンドの出力を 1 つのファイルにリダイレクトする方法

私の質問は、スクリプト自体の中でシェルスクリプト全体の出力をリダイレクトするにはどうすればよいですか? 、しかし私の質問はより明確で、より短いです

2 つのケースで重複する問題を解決するには、さらにコメントが必要です

  • この質問を他の質問と統合し、この質問を削除します
  • この質問を削除して何もしない
  • 何もしない
4

1 に答える 1

0

Bashコマンドのグループ化を使用する

目標を達成する方法は複数ありますが、ビルド スクリプトを編集してコマンドをグループ化することをお勧めします。コマンドのグループを中括弧で囲むと、リスト内のすべてのコマンドを同じ場所にリダイレクトできます。例えば:

{
    echo foo
    echo bar
    echo baz
} > /dev/null

技術的には同一ではありませんが、実用的な観点からは、各コマンドを個別に/dev/nullにリダイレクトする場合と同様の結果が得られます。

于 2016-04-10T14:58:27.230 に答える