Se você copiar o conteúdo de
httpd.conf
e cole-o em um comando cat .. como este ..
#!/bin/bash
cat > /test << EOF
pasted here..
EOF
você se depara com este erro:
-bash: command substitution: line 1: unexpected EOF while looking for matching `''
-bash: command substitution: line 4: syntax error: unexpected end of file
talvez a solução seja escapar dos cifrões e talvez até das cotações e assim por diante.
mas dado que este é um arquivo tão grande .. os cifrões podem ser escapados automaticamente?
minha única opção é escapar deles por meio de outro programa e depois entregá-lo ao comando cat?
Responder1
Use aspas ao redor da string "EOF":
cat > /test <<'EOF'
stuff $(pwd)
EOF
saídas
stuff $(pwd)
literalmente.
Veja omanual do bashem heredocs. Quaisquer aspas na string do terminador evitam quaisquer expansões e substituições no corpo.
Responder2
Compare os dois documentos aqui no exemplo a seguir:
(yeti@darkstar:6)~/wrk/tmp$ cat ./xyzzy
#!/bin/bash
cat << EOF
Version 1 - Today is $(date)
EOF
cat << 'EOF'
Version 2 - Today is $(date)
EOF
(yeti@darkstar:6)~/wrk/tmp$ ./xyzzy
Version 1 - Today is Sa 21. Jun 08:51:38 CEST 2014
Version 2 - Today is $(date)