2014-05-11 3 views
-1

변수 중 하나를 변경하면 로그 파일로 이동 한 스크립트에서 출력되는 내용을 모두 가져올 수 있는지 궁금합니다. 스크립트. 예를 들어 스크립트에서 변수 createLog=true을 로깅을 사용하도록 설정할 수 있습니다.STDerr 및 STDout을 bash 스크립트의 로그 파일로 가져 오기

은 내가 ./myscript.sh 2>&1 | tee sabs.log

할 수있어하지만 VAR 경우 단순히 콘솔에 전체 파일에 기록 스크립트뿐만 아니라 출력을 ./myscript.sh

을 실행하고있을 수 있도록하고 싶습니다 true로 설정하십시오.

이 작업을 수행하기 위해 스크립트의 모든 명령을 변경해야합니까, 아니면 둘 다로 출력 할 스크립트 시작 부분에서 실행할 수있는 명령이 있습니까?

자세한 내용이 필요하면 알려주십시오.

감사합니다.

답변

2

exec 매개 변수없이 현재 스크립트의 나머지 부분을 리디렉션 할 수 있습니다.

exec >log 2>&1 

당신은 리디렉션 내 tee 수 없습니다하지만 당신은 백그라운드 작업으로 파일을 표시 할 수 있습니다.

tail -f log & 
+1

'exec'> (tee sabs.log) 2> & 1'과 같은 프로세스 대체로 리디렉션 할 수 있습니다. – chepner

관련 문제