¿Hay alguna manera de detectar mediante programación si el wget instalado actualmente admite una característica determinada? por ejemplo, ¿soporte IRI?
Lo pregunto porque me gustaría agregar estas líneas a mi .wgetrc
:
# Use UTF-8 as the default system encoding
local_encoding = UTF-8
Pero esto hace que wget sea inutilizable si no es compatible con la local_encoding
configuración.
Por lo tanto, me gustaría configurar esta configuración de forma condicional, solo si wget admite la función.
En Vim ( .vimrc
archivos) puedes hacer esto usando has()
y exists()
:
if has("autocmd")
" Define autocommands here
endif
¿Cómo puedo hacer algo similar para wget in .wgetrc
?
Respuesta1
No puede incluir ninguna lógica adicional .wgetrc
, por lo que usar la inicialización de Shell como se describe en la respuesta de enzotib parece ser la única posibilidad.
Además de --help
, puede obtener la configuración de compilación de wget de GNU y, por lo tanto, las funciones habilitadas a través de --version
:
if wget --version | grep -q "+iri"; then
# modify ~/.wgetrc
fi
En el caso de que necesite probar si una función también está incluida en el wget de Busybox, debe saber que no es compatible --version
y, en su lugar, imprime su "--help" en stderr (no en stdout como el wget de GNU).
Respuesta2
¿Qué pasa con esto en algún script de inicialización de shell?
if wget --help | grep -q "local-encoding"; then
# modify ~/.wgetrc
fi