Как повторить EOF в Bash? [закрыто]

9

После поиска кажется, что ASCII EOF есть -1, но как я могу echoэто сделать?

Моя цель сделать это, чтобы проверить, работает ли он так же, как нажатие, ctrl-dесли я только что echoвышел EOF.

место действия
источник

Ответы:

9

Там нет никакого способа, чтобы повторить EOF. EOF может быть сгенерирован только путем достижения конца файла или путем нажатия клавиши, привязанной к eofнастройке терминала ( CtrlDпо умолчанию), когда считываемый файл привязан к терминалу.

Игнасио Васкес-Абрамс
источник
не EOFопределяется как -1в stdio.h? почему не можем повторить это, если мы знаем его значение ascii?
локаль
И что. intСо значением -1 (или 4294967295 , если мы рассмотрим беззнаковую версию) не может быть персонаж в любом случае , так как символы могут иметь только значение от 0 до 255 включительно.
Игнасио Васкес-Абрамс
откуда ты знаешь, что это вообще int?
язык
5
Потому что я делаю что-то вроде просмотра fgetc(3)справочной страницы.
Игнасио Васкес-Абрамс
8

В bash вы можете написать exec 1>&-, чтобы закрыть дескриптор файла, известный как stdout.

Как уже сказал Игнасио, EOF - это не персонаж, поэтому вопрос о том, как «повторить EOF», не имеет никакого смысла. Вы можете отображать символы (байты) или закрывать дескриптор файла, но вы никогда не сможете повторить EOF.

lekro
источник