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