我只是想在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" )结果相同。
提前谢谢!
答案 0 :(得分:3)
卷曲输出在行的末尾包含CR
,您需要将其删除。
stat=`curl -Is $url | head -n 1 | tr -d '\r'`
答案 1 :(得分:0)
如果您认为可能存在尾随字符(您不介意),请改为使用path
模式匹配:
[[