2009-07-29 4 views
8

사용자에게 '읽기'로 입력하라는 프롬프트를 표시하는 bash 스크립트가 있습니다. stdout 또는 stderr가 터미널이 아닌 다른 것으로 파이프되어 있으면이 단계를 억제하고 싶습니다. 그게 가능하니?stderr이 bash의 파이프인지 확인하십시오.

답변

16

test -t < filedescriptor no 명령을 사용하여 filedescriptor가 tty인지 (터미널에 연결되었는지) 확인할 수 있습니다. >. 이 경우 사용자에게 프롬프트 할 수 있습니다. 그렇지 않은 경우, 출력이 어딘가에 파이프되거나 재배치됩니다.

if test -t 1 ; then 
    echo stdout is a tty 
fi 
+0

고마워요! 정확히 내가 무엇을 찾고 있었는지. – alberge