Wie kann man einen EOF in Bash wiederholen? [geschlossen]


9

Nach der Suche scheint es das ASCII von EOF zu sein -1, aber wie kann ich echoes herausfinden?

Mein Zweck dabei ist es zu testen, ob es sich genauso verhält wie Drücken, ctrl-dwenn ich gerade echoraus bin EOF.

Antworten:


9

Es gibt keine Möglichkeit, einen EOF wiederzugeben. Ein EOF kann nur generiert werden, indem entweder das Ende einer Datei erreicht wird oder indem der auf die eofTerminaleinstellung gebundene Tastendruck ( CtrlDstandardmäßig) aufgerufen wird, wenn die zu lesende Datei an das Terminal gebunden ist.


ist nicht EOFwie -1in stdio.h definiert ? Warum kann ich es nicht wiedergeben, wenn wir seinen ASCII-Wert kennen?
Gebietsschema

Na und. Ein intmit dem Wert -1 (oder 4294967295, wenn wir die vorzeichenlose Version berücksichtigen) kann ohnehin kein Zeichen sein, da Zeichen nur einen Wert von 0 bis einschließlich 255 haben können.
Ignacio Vazquez-Abrams

Woher weißt du, dass es überhaupt ein ist int?
Gebietsschema

5
Weil ich Dinge wie die fgetc(3)Manpage anschaue .
Ignacio Vazquez-Abrams

8

In bash können Sie schreiben exec 1>&-, um den als stdout bekannten Dateideskriptor zu schließen.

Wie Ignacio bereits sagte, ist EOF kein Charakter, daher macht die Frage, wie man "EOF" wiedergibt, überhaupt keinen Sinn. Sie können Zeichen (Bytes) wiedergeben oder einen Dateideskriptor schließen, aber niemals einen EOF wiedergeben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.