Для более сложных последовательностей команд вы должны рассмотреть возможность использования cat
команды со следующим документом . Основной формат
command > file << END_TEXT
some text here
more text here
END_TEXT
Существует два слегка различающихся поведения в зависимости от того, заключена ли в кавычку метка END_TEXT или нет:
метка без кавычек : содержимое пишется после обычных расширений оболочки
метка в кавычках : содержимое документа здесь обрабатывается буквально, без обычных расширений оболочки
Например, рассмотрим следующий скрипт
#!/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
Результаты
$ cat file1
do some commands on "VALUE 1"
and/or "VALUE 2"
а также
$ cat file2
do some commands on "$var1"
and/or "$var2"
Если вы выводите команды оболочки из вашего скрипта, вам, вероятно, нужна форма в кавычках.