Есть ли способ программно определить, поддерживает ли установленный wget заданную функцию, например, поддержку IRI?
Я спрашиваю, потому что хочу добавить эти строки в свой .wgetrc
:
# Use UTF-8 as the default system encoding
local_encoding = UTF-8
Однако это делает wget непригодным для использования, если он не поддерживает эту local_encoding
настройку.
Поэтому я хотел бы настроить этот параметр условно, только если wget поддерживает эту функцию.
В Vim ( .vimrc
файлы) это можно сделать с помощью has()
и exists()
:
if has("autocmd")
" Define autocommands here
endif
Как я могу сделать что-то подобное для wget в .wgetrc
?
решение1
Вы не можете включить в , дополнительную логику .wgetrc
, поэтому использование инициализации оболочки, как описано в ответе enzotib, кажется единственной возможностью.
Помимо этого --help
, вы можете получить конфигурацию сборки GNU wget и, следовательно, включенные функции через --version
:
if wget --version | grep -q "+iri"; then
# modify ~/.wgetrc
fi
В случае, если вам нужно проверить, включена ли функция в wget от busybox, вам нужно знать, что он ее не поддерживает --version
и вместо этого выводит «--help» в stderr (а не в stdout, как wget от GNU).
решение2
А как насчет этого в каком-нибудь скрипте инициализации оболочки?
if wget --help | grep -q "local-encoding"; then
# modify ~/.wgetrc
fi