次の構文を使用して、stdoutとstderrを$ logファイルに送信します。
log=/var/tmp/install.log
info=/tmp/info.log
exec > $log 2>&1
標準出力と標準エラーも/tmp/info.logファイルにリダイレクトするにはどうすればよいですか?
ベストアンサー1
Bashを使用している場合は、プロセス置換を使用でき、次のことができますtee
。
exec &> >(tee "$log" > "$info")
これは、両方のストリームを交換プロセスにリダイレクトしてtee
出力を"$log"
stdinに送信し、出力を"$info"
.
/var/tmp/install.log
それ以外の場合は、コンテンツを次に送信するためにバックグラウンドプロセスを開始する必要があります/tmp/info.log
。
log=/var/tmp/install.log
info=/tmp/info.log
exec > "$log" 2>&1
tail -n+1 -f "$log" > "$info" &
tail
バックグラウンドで実行され、送信されたすべてのコンテンツをに/var/tmp/install.log
送信します/tmp/info.log
。