sh 파일의 모든 명령을 로그 파일과 콘솔에 인쇄하려면 어떻게 해야 합니까?

sh 파일의 모든 명령을 로그 파일과 콘솔에 인쇄하려면 어떻게 해야 합니까?

sh 파일의 모든 명령을 로그 파일과 콘솔에 인쇄하려면 어떻게 해야 합니까?

지금은 아래에 있다고 가정하겠습니다. 단일 라이너 명령을 원합니다(예:파일로 인쇄, 모든 명령 출력을 파일로 인쇄합니다. ) 모든 이전 명령 출력을 인쇄할 수 있습니다. /echos 파일 및 콘솔 #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

두 가지 접근 방식이 있습니다. 다른 사람들은 티를 언급했습니다. 두 번째 접근 방식은 프로세스의 표준 출력으로 전송된 모든 것을 기록하는 "스크립트" 명령과 그 변형입니다. 스크립트에서 리디렉션을 원하면 다음을 사용하십시오.

#!/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터미널 세션을 타이프스크립트로 작성하는 프로그램, 즉 터미널에 표시되는 모든 내용을 기록하는 프로그램이 있습니다 .

관련 정보