ターミナル - コマンド出力をファイルにリダイレクトする方法は? [コピー]

ターミナル - コマンド出力をファイルにリダイレクトする方法は? [コピー]

コマンド出力をログファイルに追加して端末に印刷するには、次のコマンドを使用します。

ls 2>&1 | tee -a log.txt

実行されたコマンドをリダイレクトできますか?これでサンプルコンテンツはlog.txt次のようになります。

ls
file1
file2
dir1

ベストアンサー1

これを一般化するためにヘルパー関数を追加できます。

#!/bin/bash

logged() {
  { echo "$1"; "$@"; } 2>&1 | tee -a log.txt
}

# Will run command ls with output logging
logged ls
logged ls -t /home
...

実行されたコマンドを「記録」するもう1つの一般的な方法はxtraceset -x)ですが、状況には適していない可能性があります。一度試したい場合は、少なくとも設定で一般的な「+」プレフィックスを削除できますPS4=''

おすすめ記事