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).