다음 코드를 고려해보세요:
echo hello >> log.txt
echo world >> log.txt
표준 출력 리디렉션을 사용하여 명령을 실행합니다. 고정 리디렉션을 생성할 수 있나요? 이 같은:
redir stdout log.txt
echo hello
echo world
stop-redir
이는 첫 번째 코드 부분과 동일합니다.
나에게 정말로 필요한 것은 stdout과 stderr에 대한 고정 리디렉션을 동시에 수행하고, 일부 명령을 실행하고, 리디렉션을 중지하고, 로그 파일을 읽는 것입니다.
답변1
exec 3>&1 4>&2 >log.txt 2>&1
echo hello
echo world
exec 1>&3 2>&4
less log.txt
즉, 파일 설명자 3과 4의 현재 1(stdout)과 2(stderr)의 복사본을 만들고, 1을 log.txt로, 2를 1과 동일하게 리디렉션한 다음 파일 설명자에서 명령을 실행합니다. 3과 4에서 저장되어 stdout 및 stderr을 복원합니다.