脚本在CentOS中运行良好,但在RHEL5上运行不正常

时间:2014-07-10 13:38:08

标签: linux bash shell centos rhel

以下脚本在CentOS上运行正常,但在RHEL5上运行不正确:

#!/bin/bash
read -p "enter your value:" ip
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
then
echo "valid"
else
echo "invalid"
fi

运行脚本并输入192.16666作为输入,它会说有效。但是如果你在CentOS中做同样的事情,它会说无效。

请让我知道出了什么问题。

由于

2 个答案:

答案 0 :(得分:0)

=~匹配为introduced in Bash 3.0-alpha=~ semantics changed in 3.2,但似乎只是强制右手引用字符串的文本匹配,这与这种情况无关。该版本的版本是否早于此版本?

答案 1 :(得分:0)

通过在正则表达式中添加单引号来解决它,如:

#!/bin/bash
read -p "enter your value:" ip
if [[ $ip =~ '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ]]
   then
     echo "valid"
   else
     echo "invalid"
fi

谢谢bdw:)