O 'EOF' final (o LimitString) não deve ter nenhum espaço em branco ou outros caracteres na frente da palavra, porque isso significa que o LimitString (no seu caso ABC
) não será reconhecido. 1
1 Adaptado e revisado de link
enquanto lia sobre criação de arquivos no linux eu consegui:
Outra maneira de criar um arquivo no terminal é
cat > <filename> << EOF
. Um novo arquivo é criado e você pode digitar a entrada necessária. Para sair, insira EOF no início de uma linha.
então eu tentei isso no meu prompt de shell
$ cat > test1.txt <<ABC
> This is just a test file.
> ABC
$ cat test1.txt
This is just a test file.
aqui quando eu digitei ABC
(poderia ser qualquer coisa - apenas para padrão de correspondência) .na linha nova funcionou (aceita como teria sido feito no caso de ctrl
+ C
), mas quando eu tentei
$ cat >> test1.txt <<ABC
> just for a trial
> though ABC
> it didnt worked.
> ABC
$ cat test1.txt
This is just a test file.
just for a trial
though ABC
it didnt worked.
$
fazendo isso, só funcionou na nova linha. Isso significa que <<
funciona para nova linha,
E o que está acontecendo dentro de cat> test1.txt <<ABC
exatamente?