如何将 bash 可执行文件中某个文件的版本与数字进行比较?

如何将 bash 可执行文件中某个文件的版本与数字进行比较?

我知道我问的问题有点接近,但我似乎无法弄清楚。

我有以下代码:

currentver="$(lsb_release -rs)"
requiredver="18.04"
if ["$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head - n1)" = "$requiredver"]
then 
    read -p "Ubuntu?: " vari
else
    read -p 'Hello?: ' var
fi  

但是,我总是得到这个错误:./test.sh: line 3: [18.04: command not found。我尝试过将currentver18.04作为数字进行比较,也尝试过将其作为字符串进行比较,但似乎都不起作用!

一如既往,非常感谢任何帮助。

答案1

只需在 if 语句的两端添加空格:

currentver="$(lsb_release -rs)"
requiredver="18.04"
if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head - n1)" = "$requiredver" ]
then 
    read -p "Ubuntu?: " vari
else
    read -p 'Hello?: ' var
fi  

哎呀

相关内容