Вот Вам пример для FTP-клиента:
ftp -i -n сервер <<END
user юзер пароль
cd директория
get файл
mget список_файлов
END
В этом варианте можно использовать внутри
$переменная
,
${переменная}
,
`команда`
,
$(команда)
. А используемые спец.символы, если их надо вводить как есть - надо бэкслешить; ну и сам бэкслеш тоже надо бэкслешить.
А если в первой строке написать
ftp -i -n сервер <<\END
- то все спец.символы перестают быть специальными, ничего бэкслешить не надо.
А есть более интеллектуальные системы, позволяющие интерактивно дискутировать с запущенной программой.