stderr 및 stdout에 쓰는 $LOG
동시에 스크립트에서 콘솔에 인쇄해야 합니다.
스크립트에는 많은 명령이 있으므로 각 명령을 리디렉션하는 것은 좋은 해결책이 아닙니다.
이것을 시도했지만 예상대로 작동하지 않습니다.
#!/bin/bash
LOG=/var/tmp/log
#...
exec > $LOG 2>&1
내 목표는 stdout과 stderr에 작성하는 $LOG
것뿐 아니라 (콘솔에서) stdout에도 작성하는 것입니다. 가능합니까?
답변1
답변2
이것이 가장 깨끗한 솔루션인지는 확실하지 않지만 저에게는 효과적이었습니다.
#!/bin/bash
LOG=/var/tmp/log
(
# lots of commands
# ...
) 2>&1 | tee $LOG
그러나 @sebasth는 더 나은 솔루션을 제공했습니다.
#!/bin/bash
LOG=/var/tmp/log
exec &> >(tee $LOG)
#...