#archlinux #pkgbuild
#archlinux ( архлинукс ) #pkgbuild построить
Вопрос:
Для некоторых загрузок lgogdownloader всегда возвращает код выхода 141 после успешной загрузки. Из-за этого dlagent должен перехватить этот код выхода.
Я уже пробовал некоторые dlagents, но ни один из них не работает:
DLAGENTS =('gogdownloader::/usr/bin/lgogdownloader --download-file=%u -o %o || /usr/bin/test $? -eq 141')
Error: unrecognised option '-eq'
DLAGENTS =('gogdownloader::/usr/bin/bash -c "lgogdownloader --download-file=%u -o %o || test $? -eq 141"')
--download-file=gogdownloader://2146639313/en3installer0: -c: line 0: unexpected EOF while looking for matching `"'
--download-file=gogdownloader://2146639313/en3installer0: -c: line 1: syntax error: unexpected end of file
Ответ №1:
Ваша проблема в том, что вы неправильно экранируете "
внутри '
строки. Это воспроизводит ваше 2-е сообщение об ошибке:
$ eval '/usr/bin/bash -c "echo hello world"'
hello: -c: line 0: unexpected EOF while looking for matching `"'
hello: -c: line 1: syntax error: unexpected end of file
1-е вхождение "
обрабатывается как эта буквальная последовательность, в то время как 2-е вхождение экранирует цитату, оставляя вас с бесконечной строкой. Удалив escape, вы получите желаемый результат:
$ eval '/usr/bin/bash -c "echo hello world"'
hello world
Комментарии:
1. Если я использую
DLAGENTS =('gogdownloader::/usr/bin/bash -c "lgogdownloader --download-file=%u -o %o || test $? -eq 141"')
, я получаю ту же ошибку:--download-file=gogdownloader://2146639313/en3installer0: -c: line 0: unexpected EOF while looking for matching `"' --download-file=gogdownloader://2146639313/en3installer0: -c: line 1: syntax error: unexpected end of file
2. @Lukas1818 вы пытались поместить содержимое в отдельный скрипт и вызвать этот скрипт из makepkg вместо встраивания команды?
Ответ №2:
Как упоминает msrd0, вы можете использовать отдельный скрипт:
DLAGENTS =("gogdownloader::./catch_gogdownloader_error141.sh %u %o")
#!/bin/bash
lgogdownloader --download-file=$1 -o $2 || test $? -eq 141
Но я думаю, что это скорее обходной путь, чем реальное решение.