如何以编程方式检查“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

相关内容