shファイル内のすべてのコマンドをコンソールだけでなくログファイルにも出力したい場合はどうすればいいでしょうか

shファイル内のすべてのコマンドをコンソールだけでなくログファイルにも出力したい場合はどうすればいいでしょうか

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ターミナル セッションをタイプ スクリプトする、つまりターミナルに表示されるすべての内容を記録するプログラムがあります。

関連情報