Bash 스크립트에서는 명령 출력을 변수로 리디렉션하는 동시에 버퍼링되지 않은 출력을 터미널로 스트리밍해야 합니다.
나는 이것을 시도했습니다 :
output=$(command 2>&1 | tee "$(tty)")
그러나 이것은 터미널에 아무것도 출력하지 않습니다.
나도 시도했다
mytty=$(tty)
output=$(command 2>&1 | tee $mytty)
이로 인해 "tee:/dev/tty1: 권한이 거부되었습니다"라는 오류가 발생했습니다.
현재 운영 체제는 OpenSUSE 15.0이고 sudo/root 권한이 없습니다.
답변1
노력하다
... | tee /dev/tty
좋다:
output=$( command 2>&1 | tee /dev/tty )
이 명령은 tty
파이프라인 내에서 작동하지 않습니다.
$ echo $(tty) # or (a lot better) simply: tty
/dev/pts/4
$ echo aa | echo $(tty)
not a tty
이는 파이프의 오른쪽이 tty에 연결되어 있지 않음을 의미합니다.