sh ファイル内のすべてのコマンドをコンソールだけでなくログ ファイルに出力したい場合はどうすればよいでしょうか。
今のところ、以下のようなコマンドがあります。1行のコマンド(ファイルへ印刷(このコマンドはすべてのコマンドの出力をファイルに出力します)このコマンドは、その前のすべてのコマンドの出力をファイルとコンソールに出力できます。#sh
SH
**some command here, so it will print all below echos to file and console**
echo start
echo "My first name is $1"
echo "My surname is $2"
echo "Total number of arguments is $#"
echo end
答え1
2つのアプローチがあります。他の人がteeについて言及しています。2番目のアプローチは、プロセスのstdoutに送信されたものをすべて記録する「script」コマンドとそのバリエーションです。スクリプトでリダイレクトしたい場合は、
#!/bin/bash
{
echo start
echo "My first name is $1"
echo "My surname is $2"
echo "Total number of arguments is $#"
echo end
} | tee logfile
答え2
これを試して...
#!/bin/bash
log_file=/tmp/log.txt
function log(){
echo "$@" | tee -a "${log_file}"
}
log "test"
log "hello"
log "testing...."
答え3
tee
コマンドを使用して、スクリプトの出力を stdout とファイルにリダイレクトできます。
次のコマンドは、ファイル f1.txt の内容をファイル f2.txt と stdout (コンソール) に出力します。
cat f1.txt | tee f2.txt
ティーチェックの詳細についてはティーマンページ
答え4
script
ターミナル セッションをタイプ スクリプトする、つまりターミナルに表示されるすべての内容を記録するプログラムがあります。