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
. 즉, 터미널에 표시된 모든 것을 기록할 수 있습니다.