Vraag Hoe echo een EOF in bash echo? [Gesloten]


Na het zoeken lijkt het erop dat de ascii van EOF is -1, maar hoe kan ik echo het eruit?

Mijn doel hiervan is om te testen of het zich hetzelfde gedraagt ​​als drukken ctrl-d als ik gewoon echo uit EOF.


7
2018-06-08 09:01


oorsprong




antwoorden:


Er is geen manier om een ​​EOF te laten klinken. Een EOF kan alleen worden gegenereerd door het einde van een bestand te bereiken of door de toetsaanslag die is gebonden aan de eof terminal instelling (CtrlD standaard) wanneer het bestand dat wordt gelezen, is verbonden met de terminal.


9
2018-06-08 09:10



is niet EOF gedefinieerd als -1 in stdio.h? waarom kan het niet uiten als we de ascii-waarde kennen? - locale
En dan. Een int met de waarde -1 (of 4294967295 als we de niet-ondertekende versie beschouwen) kan sowieso onmogelijk een teken zijn, omdat tekens alleen een waarde tussen 0 en 255 kunnen hebben. - Ignacio Vazquez-Abrams
hoe weet je dat het een is int in de eerste plaats? - locale
Omdat ik dingen doe zoals kijken naar de fgetc(3) man pagina. - Ignacio Vazquez-Abrams


In bash zou je kunnen schrijven exec 1>&- om de bestandsdescriptor te sluiten die bekend staat als stdout.

Zoals Ignacio al zei, is EOF geen personage, dus de vraag hoe 'Echo EOF' is, slaat in de eerste plaats niet op. U kunt karakters echoën (bytes) of u kunt een bestandsdescriptor sluiten, maar u kunt nooit een EOF echoën.


7
2018-06-08 13:53