Como ecoar um EOF no bash? [fechadas]

9

Após a pesquisa, parece que o ascii do EOF é -1, mas como posso echodescobrir isso?

Meu objetivo é testar se ele se comporta da mesma forma que pressionar ctrl-dse eu echosair EOF.

localidade
fonte

Respostas:

9

Não há como ecoar um EOF. Um EOF só pode ser gerado atingindo o final de um arquivo ou invocando o pressionamento de tecla associado à eofconfiguração do terminal ( CtrlDpor padrão) quando o arquivo que está sendo lido está vinculado ao terminal.

Ignacio Vazquez-Abrams
fonte
não está EOFdefinido como -1em stdio.h? por que não podemos repetir se conhecemos seu valor ascii?
localidade
E daí. Um intcom o valor de -1 (ou 4294967295 se considerarmos a versão não assinada) não pode ser um caractere de qualquer maneira, pois os caracteres podem ter apenas um valor de 0 a 255, inclusive.
Ignacio Vazquez-Abrams
como você sabe que é um intem primeiro lugar?
localidade
5
Porque eu faço coisas como olhar para a fgetc(3)página de manual.
Ignacio Vazquez-Abrams
8

No bash, você pode escrever exec 1>&-para fechar o descritor de arquivo conhecido como stdout.

Como Ignacio já disse, EOF não é um personagem, então a questão de como "ecoar EOF" não faz nenhum sentido em primeiro lugar. Você pode repetir caracteres (bytes) ou fechar um descritor de arquivo, mas nunca repetir um EOF.

lekro
fonte