¿Cómo comprobar si `wget` admite una determinada función mediante programación?

¿Cómo comprobar si `wget` admite una determinada función mediante programación?

¿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_encodingconfiguración.

Por lo tanto, me gustaría configurar esta configuración de forma condicional, solo si wget admite la función.

En Vim ( .vimrcarchivos) 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 --versiony, 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

información relacionada