Bash:if 语句中的版本号

问题描述

在我的 if-then-else 语句中传递 “大于或等于” 值时遇到困难,十进制整数作为 1 运行-liner 并卷曲PHPinfo.PHP 页面以检查域的PHP 版本是否大于或等于7.0。显然,在分配站点的主目录中创建了一个 PHP 信息文件 (PHPinfo.PHP)。这是我以人类可读的方式显示的命令:

read -ep "Enter the domain: " DOMAIN ; 
PHPVERSION=$(curl -s https://$DOMAIN/PHPinfo.PHP | grep -ioP 'PHP version\s\K\d.\d') ; 
if [ $PHPVERSION >= 7.0 ] ; 
  then 
    echo -e "PHP version at least 7.0? YES" ; 
  else 
    echo -e "PHP version at least 7.0? NO\nPHP version = $PHPVERSION" ; 
fi ; 
[~]# echo $PHPVERSION
7.0

这是我在尝试运行命令时使用/获得的测试/输出

如果 [ $PHPVERSION >= 7.0 ]

-jailshell: [: 7.0: unary operator expected
PHP version at least 7.0? NO
PHP version = 7.0

if [ $PHPVERSION -ge 7.0 ]

-jailshell: [: 7.0: integer expression expected
PHP version at least 7.0? NO
PHP version = 7.0

如果 [[ $PHPVERSION >= 7.0 ]]

-jailshell: Syntax error in conditional expression
-jailshell: Syntax error near `7.0'

if [[ $PHPVERSION -ge 7.0 ]]

-jailshell: [[: 7.0: Syntax error: invalid arithmetic operator (error token is ".0")
PHP version at least 7.0? NO
PHP version = 7.0

我可以让它像 >-gt 一样正常工作,但我测试所需的 PHP 版本大于或等于 7.0。我在这里缺少什么?我也尝试过将 7.0 作为变量传递并以这种方式进行测试,但几乎在我所有的测试中都获得了相同的输出。我还尝试使用 echo 将 7.0 保存为变量并将其通过管道传输到 bc 中,但我认为我做得不对。变量周围的双引号似乎也没有帮助。我觉得这很简单,但我确实环顾了我能找到的关于这个主题的所有文章,但还没有想出任何有效的方法。感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)