Как повторить 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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.