ファイルとコンソールに出力するためのシェルスクリプトの準備

ファイルとコンソールに出力するためのシェルスクリプトの準備

tee出力をファイルにコピーしてコンソールに出力するために使用できることがわかります。

teeただし、スクリプト内のすべてのコマンドを使用したり、パイプを使用してスクリプトを実行しないと(固定テンプレートなど)、シェルスクリプトを準備する方法が見つからないようですtee

teeしたがって、スクリプトが自動的に呼び出されるのではなく、パイプラインを使用して毎回スクリプトを呼び出す必要があります。

修正されたshebangを使ってパイプを試しましたが、成功しませんでした。これを達成する方法が見つからないようです。

したがって、次のようにスクリプトを呼び出さないでください。

./myscript.sh |& tee scriptout.txt

次のように呼び出して同じ効果を得たいと思います。

./myscript

もちろん、スクリプトはスクリプト内の変数に設定されたファイル名を知る必要があります。

どうすればいいですか?

ベストアンサー1

スクリプトの内容を関数にラップし、関数の出力を次にパイプすることができますtee

#!/bin/bash

{
echo "example script"
} | tee -a /logfile.txt

おすすめ記事