Wie kann ich feststellen, ob STDIN an einen Terminal in Perl verbunden ist?
Frage
Wie kann ich feststellen, ob STDIN an einen Terminal in Perl verbunden ist?
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