如何获得版本号,然后将其与最低版本号进行比较



我使用这个答案来比较所需的最小版本号。但在我进行比较之前,我实际上一直纠结于如何提取版本号。

我当前的脚本看起来像这个

#!/usr/bin/env bash
x=`pgsync -v`
echo "---"
echo $x

其输出为

> ./version-test.sh
0.6.7
---

我也尝试过使用x="$(pgsync -v)",但仍然得到一个空字符串。我在这里做错了什么。

如果您试图在变量中捕获命令的输出,而它却被打印到终端,这表明该命令没有写入其标准输出,而是写入另一个流-通常是标准错误。所以只要重定向它:

x=$(pgsync -v 2>&1)

顺便说一句,将明确请求的版本号写入标准错误而不是标准输出是违反直觉的,可以说是一个错误。

此外,更喜欢$()命令替换而不是倒勾;有关详细信息,请参阅Bash常见问题082。

相关内容

  • 没有找到相关文章

最新更新