2009-02-11 1 views
0

У меня есть огромный файл с большим количеством ссылок на файлы различных типов для загрузки. Каждая строка одна команда скачать как:wget errors breaks shell script - как это предотвратить?

Wget 'url1'

Wget 'URL2'

...

и есть тысячи тех.

К сожалению, некоторые URL-адрес выглядит очень некрасиво, как, например: http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc Он открывает OK в браузере, но путает Wget.

Я получаю сообщение об ошибке:

./tasks001.sh: строка 35: ошибка синтаксиса около неожиданных лексем `1'

./tasks001.sh: строка 35:` Wget 'http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc' '

Я пробовал как URL, так и' URL 'способы указать, что загрузить.

Есть ли способ сделать сценарий таким запущенным без присмотра? Я в порядке, если он просто пропустит файл, который он не смог скачать.

ответ

1

Я думаю, вы должны использоваться двойные кавычки ("), а не одиночные кавычки (') по URL.

Если это все еще не работает, попробуйте спасаясь от PAREN символов ( и ) с обратной косой черты : \( и \)

Какие оболочки вы используете Bash ЗШ

+0

Спасибо, похоже, что это работает. :) – user63503

0

Это не точно ответить на ваш вопрос, но:?

оба ВОЛП Команды мычание работают непосредственно в Баш оболочки:

wget "http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc" 

и

wget 'http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc' 

Вы можете проверить, если посмотреть любой из этих работ для вас?

0

То, что кажется, происходит то, что ваша оболочка делает что-то с (символами. Я хотел бы попробовать использовать двойные кавычки "вместо одинарных кавычек 'вокруг вашего URL.

Если вы хотите, чтобы подавить ошибки вы можете использовать а>/DEV/нуль под UNIX для перенаправления стандартного вывода или 2>/Dev/нуль, чтобы перенаправить стандартную ошибку. в других операционных системах это может быть что-то еще.

6

не (аb) использовать оболочку.

Сохраните URL-адрес в файле (скажем, my_urls.lst) и выполните следующие действия:

wget -i my_urls.lst 

Wget будет обрабатывать цитирование и т.д. на его собственную