首页 > 解决方案 > bash中复制粘贴的字符串不等于变量中的字符串

问题描述

我正在尝试比较来自变量的字符串(从curl输出获得)和 IF 语句中的双引号字符串,它们总是不相等的:

$ curlResult="$(curl -Isk https://stackoverflow.com | head -n 1)"
$ echo $curlResult
HTTP/2 200 
$ if [ "$curlResult" != "HTTP/2 200" ] ; then echo 1; else echo 0; fi 
1

我尝试了什么:

  1. 通过字符串手动设置变量,然后它们变得相等,所以问题出在curl输出中。

  2. 将xargs添加到 curl 输出以删除空格,但没有帮助:

    $ curlResult="$(curl -Isk https://stackoverflow.com/questions/ask | head -n 1 | xargs)"

我是 bash 的新手,所以也许我丢失了一些重要的东西。

标签: bashcurl

解决方案


curlResult空格结尾,后跟\r. 您可以将它们从变量中删除或在测试中忽略它们。我会用

if [[ "$curlResult" =~ "HTTP/2 200" ]]; then
   echo "OK"
else
   echo "NOK"
fi

推荐阅读