Настройте wget для не избиения хороших данных с пустыми данными

Запись сценария оболочки в определенной оболочке означает устанавливать ту оболочку. Единственный стандарт должен иметь csh и sh установленный по всем вариантам Unix. Так, если бы Вы хотели, чтобы Ваш сценарий работал на Солярисе, *BSD и GNU затем, то необходимо было бы записать это в, скажем, Оболочке Bourne.

Однако большинство команд Unix имеет различные синтаксисы при различных реализациях - смотрят на ps в соответствии с Солярисом, FreeBSD и GNU - так в зависимости от того, какие инструменты Вы используете, Ваш сценарий не может быть портативным так или иначе. То, где оболочка установлена, будет иметь значение также. Это /bin/bash /usr/bin/bash, /usr/local/bin/bash, или где-то в другом месте?

Я не знаю, что любые стандарты определяют оболочку. Взгляните на дистанционное управление или http://192.220.96.201/es/es-usenix-winter93.html`"> es для странных нестандартных оболочек. Однако они, кажется, все еще соответствуют некоторым общим идеям.

2
23.03.2011, 22:53
2 ответа

Если можно изменить конфигурацию веб-сервера или позволенный иметь .htaccess, можно установить пользовательские ошибочные страницы. Например, принимая апача как веб-сервер, сделайте ошибочную страницу /var/www/error-pages/404-error.html и добавьте следующее к своему .htaccess или разделу vhosts.

Alias /error-pages /var/www/error-pages
ErrorDocument 404 /error-pages/404-error.html

Вместе с директивой псевдонима можно использовать те же ошибочные страницы для нескольких vhosts, если у Вас есть больше чем один. Это одно должно помочь не избиению, но можно также добавить -X error-pages к Вашему wget параметры для пропуска всех пользовательских ошибочных страниц в целом.

1
27.01.2020, 22:16

Сделайте копию файла прежде, чем назвать wget. (Кажется, нет способа сказать wget удалять связь и воссоздавать, а не ударять файл.)

cp -p foo foo.prev
wget http://example.com/foo
if ! [ -S "foo" ]; then mv -f foo.prev foo; done
1
27.01.2020, 22:16

Теги

Похожие вопросы