teeでシェルスクリプトをラップする

teeでシェルスクリプトをラップする

いくつかのログを印刷し、いくつかのパラメータを受け入れるbashスクリプトがあります。このスクリプトはログを STDOUT として出力します。スクリプト名が次のようになっているとします。AAA.sh

STDOUTまた、ログをに印刷するスクリプトを作成したいと思いますfile。これはを介して行うことができますtee

$ AAA.sh -a -b --c=d | tee 2012-07-03-080000.log

しかし、私たちのチームでは、出力をtee。だからラップスクリプトを使いたいですtee

私がしたいことは

$ WrapAAAwithTee.sh -a -b --c=d

その後、AAAwithTee.shはログをSTDOUTおよびログファイルとして印刷する必要があります。
AAA.shをパッケージ化する方法は?

ベストアンサー1

このスクリプトは以前の回答よりもうまく機能します。

#!/bin/bash

exec AAA.sh "$@" | tee "$(date +'%F-%H%M%S').log"

これはスペースでもうまく機能し、現在の時間に基づいてログファイルに一意の名前を付けます。これはexecさらに効率的であり、サブプロセスが開始された後にプロセスツリーからラッパーを除去する。

おすすめ記事