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

두 가지 방법이 있습니다. 다른 사람들은 티셔츠를 언급했습니다. 두 번째 방법은 "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명령을 사용하여 스크립트 출력을 표준 출력 및 파일로 리디렉션 할 수 있습니다 .

다음 명령은 f1.txt 파일의 내용을 f2.txt 파일 및 stdout(콘솔)에 인쇄합니다.

cat f1.txt | tee f2.txt

티셔츠 검사에 대한 추가 정보티셔츠 맨페이지

답변4

터미널 세션을 타입캐스트할 수 있는 프로그램이 있습니다 script. 즉, 터미널에 표시된 모든 것을 기록할 수 있습니다.

관련 정보