Para seqüências de comandos mais complexas, considere usar o cat
comando com um documento aqui . O formato básico é
command > file << END_TEXT
some text here
more text here
END_TEXT
Existem dois comportamentos sutilmente diferentes, dependendo se o rótulo END_TEXT está entre aspas ou não:
rótulo não citado : o conteúdo é escrito após as expansões usuais do shell
etiqueta entre aspas : o conteúdo do documento aqui é tratado literalmente, sem as expansões usuais do shell
Por exemplo, considere o seguinte script
#!/bin/bash
var1="VALUE 1"
var2="VALUE 2"
cat > file1 << EOF1
do some commands on "$var1"
and/or "$var2"
EOF1
cat > file2 << "EOF2"
do some commands on "$var1"
and/or "$var2"
EOF2
Os resultados são
$ cat file1
do some commands on "VALUE 1"
and/or "VALUE 2"
e
$ cat file2
do some commands on "$var1"
and/or "$var2"
Se você estiver produzindo comandos shell a partir do seu script, provavelmente desejará o formulário entre aspas.