bash 스크립트에서 모든 표준 출력을 로그 파일로 리디렉션하고 ?를 tee
사용하여 화면의 출력을 어떻게 리디렉션 할 수 exec
있습니까?
log_file="$HOME/logs/install.txt-`date +'%Y-%m-%d_%H-%M-%S'`"
[ -f "$log_file" ] || touch "$log_file"
exec 1>> $log_file 2>&1
이 코드는 모든 로그를 화면이 아닌 로그 파일로 리디렉션합니다.
exec &> >(tee -a "$log_file")
echo "This will be logged to the file and to the screen"
$log_file
스크립트 및 하위 프로세스의 출력이 포함되며 출력도 화면에 인쇄됩니다.
>(...)
프로세스를 시작 ...
하고 표준 입력을 나타내는 파일을 반환합니다.
exec &> ...
...
스크립트의 나머지 부분에 대해 표준 출력과 표준 오류를 모두로 리디렉션합니다 (표준 출력 exec > ...
에만 사용).
tee -a
표준 입력을 파일에 추가하고 화면에 인쇄합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다