Para conteúdo arbitrário, você também pode usar:
cat << 'EOF' > file
RZW"a'4$k6[)b!^"'%*X6Evf
RZW"a'4$k6[)b!^"'%*X6Evf
EOF
(desde que o conteúdo não contenha linhas que consistam exatamente em EOF
e, nesse caso, você poderá usar um delimitador diferente).
Para incluir caracteres NUL ( ^@
normalmente digitados com Ctrl + V Ctrl + Espaço ou Ctrl + V Ctrl + @ ), o acima só funcionará com zsh
. Com outras shells (e zsh
), você pode fazer:
cat > file
Digite o texto e pressione Ctrl + D em uma linha vazia (ou Ctrl-D duas vezes, se quiser incluir uma linha não terminada) quando terminar. / p>
Outra abordagem para lidar com dados arbitrários e possivelmente binários é usar itens como uuencode
ou base64
:
Por exemplo:
printf 'uudecode << 'EOF'
begin 644 file
$''$"'P''
'
end
EOF
' > file
Pode ser escrito:
cat << 'EOF' > file
RZW"a'4$k6[)b!^"'%*X6Evf
RZW"a'4$k6[)b!^"'%*X6Evf
EOF
(essa saída é obtida executando uuencode file < some-file
, em que some-file
contém esse conteúdo específico).