字符串之间的Bash比较 - 相等但不相等

时间:2015-07-26 10:26:13

标签: string bash if-statement

我只是想在Bash中对2个字符串进行非常简单的比较:

stat=`curl -Is $url | head -n 1` 
echo $stat
if [ "$stat" = "HTTP/1.1 200 OK" ];then
    echo "$symbol is OK"
    echo $stat
    valide=$(( $valide + 1 ))
else
    echo "$symbol is 404"
    echo $stat
    err=$(( $err + 1 ))
fi

但即使" stat"完全相同,结果保持不等:

HTTP/1.1 200 OK
AAA is 404
HTTP/1.1 200 OK

如何修改我的代码?

我和#34; /"也有很多错误。 ("意外的运算符",...)在到达此代码示例之前的字符串中,我尝试了许多不同的方法,如contains(" 200" )结果相同。

提前谢谢!

2 个答案:

答案 0 :(得分:3)

卷曲输出在行的末尾包含CR,您需要将其删除。

stat=`curl -Is $url | head -n 1 | tr -d '\r'` 

答案 1 :(得分:0)

如果您认为可能存在尾随字符(您不介意),请改为使用path模式匹配:

[[