Bash 仅当命令';s版本支持它

Bash 仅当命令';s版本支持它,bash,command-line-arguments,Bash,Command Line Arguments,我有这样一个命令:。|排序-u-V。它适用于许多最新版本的sort,但我运行该命令的一些机器的sort版本非常旧,不支持-V标志 仅当sort命令接受时,我如何有条件地设置-V标志?您可以执行以下操作: if $(sort -u -V test_file &>/dev/null) then ... | sort -u -V fi 因为如果排序-u-V不可用,则将返回一个错误退出代码。您可以执行以下操作: if $(sort -u -V test_file &>

我有这样一个命令:
。|排序-u-V
。它适用于许多最新版本的
sort
,但我运行该命令的一些机器的
sort
版本非常旧,不支持
-V
标志

仅当
sort
命令接受时,我如何有条件地设置
-V
标志?

您可以执行以下操作:

if $(sort -u -V test_file &>/dev/null)
then
    ... | sort -u -V
fi
因为如果排序-u-V不可用,则
将返回一个错误退出代码。

您可以执行以下操作:

if $(sort -u -V test_file &>/dev/null)
then
    ... | sort -u -V
fi
因为如果排序-u-V不可用,则
将返回一个错误退出代码。

您可以执行以下操作:

if $(sort -u -V test_file &>/dev/null)
then
    ... | sort -u -V
fi
因为如果排序-u-V不可用,则
将返回一个错误退出代码。

您可以执行以下操作:

if $(sort -u -V test_file &>/dev/null)
then
    ... | sort -u -V
fi

因为
sort-u-V
将在不可用时返回一个错误退出代码。

我想这个有趣的命令可能会起作用:

SUPPORTS=$(man sort | grep "^\s*\-V" &> /dev/null && echo Y || echo N)

我想这个有趣的命令可能有用:

SUPPORTS=$(man sort | grep "^\s*\-V" &> /dev/null && echo Y || echo N)

我想这个有趣的命令可能有用:

SUPPORTS=$(man sort | grep "^\s*\-V" &> /dev/null && echo Y || echo N)

我想这个有趣的命令可能有用:

SUPPORTS=$(man sort | grep "^\s*\-V" &> /dev/null && echo Y || echo N)