Comment faire écho à un EOF en bash? [fermé]

9

Après la recherche, il semble que l'ascii de l'EOF soit -1, mais comment echole sortir?

Mon but est de tester si cela se comporte de la même manière que d'appuyer ctrl-dsi je viens de echosortir EOF.

lieu
la source

Réponses:

9

Il n'y a aucun moyen de reproduire un EOF. Un EOF ne peut être généré qu'en atteignant la fin d'un fichier ou en appelant la pression de touche liée au eofparamètre du terminal ( CtrlDpar défaut) lorsque le fichier en cours de lecture est lié au terminal.

Ignacio Vazquez-Abrams
la source
n'est pas EOFdéfini comme -1dans stdio.h? pourquoi ne peut-il pas l'écho si nous connaissons sa valeur ascii?
locale
Et alors. Un intavec la valeur -1 (ou 4294967295 si nous considérons la version non signée) ne peut de toute façon pas être un caractère car les caractères ne peuvent avoir qu'une valeur de 0 à 255 inclus.
Ignacio Vazquez-Abrams le
comment savez-vous que c'est un inten premier lieu?
locale
5
Parce que je fais des choses comme regarder la fgetc(3)page de manuel.
Ignacio Vazquez-Abrams le
8

En bash, vous pouvez écrire exec 1>&-afin de fermer le descripteur de fichier appelé stdout.

Comme Ignacio l'a déjà dit, EOF n'est pas un personnage, donc la question de savoir comment "faire écho à EOF" n'a aucun sens en premier lieu. Vous pouvez faire écho à des caractères (octets) ou fermer un descripteur de fichier, mais vous ne pouvez jamais faire écho à un EOF.

lekro
la source