Stdin이 Perl의 터미널에 연결되어 있는지 어떻게 알 수 있습니까?

StackOverflow https://stackoverflow.com/questions/528781

  •  22-08-2019
  •  | 
  •  

문제

Stdin이 Perl의 터미널에 연결되어 있는지 어떻게 알 수 있습니까?

도움이 되었습니까?

해결책

if (-t STDIN) {
  # stdin is connected
} else {
  # stdin is not connected
}

나는 보통 -t stdout과 함께 이것을 사용하여 대화 형 쉘이나 CRON에서 실행 중인지 확인하여 더 많은 출력을 가능하게합니다.

다른 팁

당신은 또한 관심이있을 수 있습니다 io :: 대화식 Perl이 생각하는지 알아 내기 위해 사용자와 상호 작용하고 있다고 생각합니다. 단순히 TTY에 연결되어 있다고해서 사용자가 자신이하는 일을 볼 수는 없습니다.

한 가지 해결책은 tty를 사용하는 것입니다.

[root@server] ~> tty
/dev/pts/0
[root@server] ~> echo y | tty
not a tty

하지만 예쁘지는 않습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top