Выполнить curl в bash скрипте через QProcess

Есть bash скрипт, который должен скачивать архив, распаковывать его и удалять. В скрипт передается индекс файла, который нужно скачивать. Выглядит следующим образом:

curl -o file.zip http://any-dev.com/get/$1 && \
unzip file.zip && \
rm file.zip

Скрипт лежит в ресурсах Qt (.qrc). И запускается плюсовым кодом:

const QString param(QString::number(value));
if (!QFile::exists(":/screepts/screept.txt"))
   qDebug() << "File not exists" << endl;
 
QFile file(":/screepts/screept.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    qDebug() << "File not open" << endl;
 
const QString command = QString(R"(%1 %2)")
        .arg(QString(file.readAll()).replace("\n", " "))
        .arg(param);
 
qDebug() << command <<endl;
QProcess::startDetached("bash", {"-c", command});

Плюсовый код по запуску скрипта работает нормально. Проблемы видимо в самом скрипте. В консоле ошибки:

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 6607 0 6607 0 0 49074 0 --:--:-- --:--:-- --:--:-- 49305 /usr/bin/bash: line 1: unzip: command not found

Пример вывода дебага:

"curl -o file.zip http://any-dev.com/get/$1 && \\ unzip file.zip && \\ rm file.zip  200"

Ответы (1 шт):

Автор решения: Zt.

В скрипт передается индекс файла, который нужно скачивать. Выглядит следующим образом:

    curl -o file.zip http://any-dev.com/get/$1 && \
    unzip file.zip && \
    rm file.zip

не нужно использовать вместе && \, для переноса записи здесь и одного && будет достаточно.

у вас вылазит ошибка

/usr/bin/bash: line 1: unzip: command not found

сам unzip на скока я понял у вас установлен, но из за того что перенос строки \n после \ вырезается ...replace("\n", " ")) то следующая команда уже не отработает как надо.

пример:

$ echo 111 &&
echo 444
111
444

будет работать как и

$ echo 111 && \
echo 444
111
444

но если в одной строке, то

$ echo 111 && \ echo 444
1111
bash:  echo: команда не найдена
→ Ссылка