如何以程式方式檢查「wget」是否支援某個功能?

如何以程式方式檢查「wget」是否支援某個功能?

有沒有辦法以程式方式檢測目前安裝的 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 的答案中描述的 shell 初始化似乎是唯一的可能性。

除此之外--help,您還可以透過以下方式取得 GNU wget 的建置配置以及啟用的功能--version

if wget --version | grep -q "+iri"; then 
    # modify ~/.wgetrc
fi

如果您需要測試某個功能是否也包含在 busybox 的 wget 中,您需要知道該功能不支持,--version而是將其「--help」列印到 stderr(不是 GNU 的 wget 那樣的 stdout)。

答案2

在某些 shell 初始化腳本中這個怎麼樣?

if wget --help | grep -q "local-encoding"; then 
    # modify ~/.wgetrc
fi

相關內容