Нам, видимо, нужно, чтобы выполнилось что-то вроде:
Код: Выделить всё
$ sh -c "текст_скрипта"В скрипте могут быть пробелы, кавычки и пр., поэтому, подавая его в команду, я использую конструкцию:
Код: Выделить всё
$ sh -c "`cat << EOF
текст скрипта
EOF`"Всё работает, до тех пор, пока я не откладываю bash и не пытаюсь сделать то же самое на Qt:
Код: Выделить всё
QString command = "sh -c \"`cat <<EOF\n" + scriptText + "\nEOF`\"";
process->start(command);Вот так - не работает. При этом, если я вывожу какой-нибудь отладочный
cout << command.toUtf8() << endl;
то получаю точную копию bash-кода из листинга №2 моего сообщения. Копирую, вставляю в консоль - работает.