Gibt es eine Möglichkeit, programmgesteuert festzustellen, ob das aktuell installierte wget eine bestimmte Funktion unterstützt, beispielsweise IRI-Unterstützung?
Ich frage, weil ich diese Zeilen zu meinem hinzufügen möchte .wgetrc
:
# Use UTF-8 as the default system encoding
local_encoding = UTF-8
Dies macht wget jedoch unbrauchbar, wenn es die Einstellung nicht unterstützt local_encoding
.
Daher möchte ich diese Einstellung nur bedingt konfigurieren, wenn wget die Funktion unterstützt.
In Vim ( .vimrc
Dateien) können Sie dies mit has()
und tun exists()
:
if has("autocmd")
" Define autocommands here
endif
Wie kann ich etwas Ähnliches für wget tun .wgetrc
?
Antwort1
Sie können keine zusätzliche Logik in einbinden .wgetrc
, daher scheint die Verwendung der Shell-Initialisierung, wie in der Antwort von enzotib beschrieben, die einzige Möglichkeit zu sein.
Darüber hinaus --help
können Sie die Build-Konfiguration von GNUs wget und damit die aktivierten Funktionen über abrufen --version
:
if wget --version | grep -q "+iri"; then
# modify ~/.wgetrc
fi
Falls Sie testen müssen, ob eine Funktion auch im wget von Busybox enthalten ist, müssen Sie wissen, dass es dies nicht unterstützt --version
und stattdessen „--help“ auf stderr ausgibt (nicht auf stdout wie das wget von GNU).
Antwort2
Wie wäre es damit in einem Shell-Initialisierungsskript?
if wget --help | grep -q "local-encoding"; then
# modify ~/.wgetrc
fi