2010-08-18 9 views

Antwort

15

die -t filetest operator verwenden.

print -t STDOUT ? "Yes\n" : "No\n" 

Beachten Sie, dass in Perl kann STDOUT (im Wesentlichen ein zu kompliziert überlastet Objekt) gebunden werden, so dass eine Ausgabe an STDOUT kann noch eine TTY erreichen, auch wenn es nicht direkt an einen befestigt.

+1

IO :: Interactive zeigt die Spezialfälle, die Sie vielleicht auch berücksichtigen möchten. –

+0

Wie auf der Erde hat diese Antwort eine Punktzahl von +5, während eine andere (früher!) Post mit * genau * der gleichen Antwort eine Punktzahl von -1 hat? – EMP

+0

@Evgeny Diese Antwort war ursprünglich 'print -t 1? "Ja \ n": "Nein \ n" '. Die unnötige Verwendung einer Datei hat sie gekauft. – Schwern

7

Verwenden Sie IO::interactive, wenn Sie STDOUT benötigen, um tatsächlich mit dem Terminal verbunden zu sein, und nicht nur zu /dev/null/ oder was auch immer umgeleitet werden.

Verwandte Themen