对于某些下载,lgogdownloader在成功下载后始终返回退出代码141。因此,dlagent应该捕获此退出代码。
我已经尝试了一些dlagent,但这些都不起作用:
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
您的问题是错误地转义了'
字符串中的"
。这会重现您的第二条错误消息:
$ 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
"
的第一次出现被视为该文字序列,而第二次出现则会转义引号,留下一个永无止境的字符串。删除转义,你会得到想要的结果:
$ eval '/usr/bin/bash -c "echo hello world"'
hello world
msrd0如何提到您可以使用单独的脚本:
DLAGENTS+=("gogdownloader::./catch_gogdownloader_error141.sh %u %o")
#!/bin/bash
lgogdownloader --download-file=$1 -o $2 || test $? -eq 141
但我认为这更多的是一种变通方法,而不是真正的解决方案。