Frage

Wie kann ich feststellen, ob STDIN an einen Terminal in Perl verbunden ist?

War es hilfreich?

Lösung

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

Ich benutze diese in der Regel in Verbindung mit -t STDOUT, um herauszufinden, ob ich von einer interaktiven Shell renne oder von cron, mehr Leistung zu ermöglichen.

Andere Tipps

Das könnte Sie auch interessieren: IO :: Interactive um herauszufinden, ob Perl denkt es wird mit einem Benutzer interagiert. Einfach an einen tty nicht bedeutet, der Benutzer verbunden ist, wird zu sehen, was Sie tun.

Eine Lösung wäre tty zu verwenden:

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

Aber nicht sehr schön ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top