bash - 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
我尝试了什么:
通过字符串手动设置变量,然后它们变得相等,所以问题出在curl输出中。
将xargs添加到 curl 输出以删除空格,但没有帮助:
$ curlResult="$(curl -Isk https://stackoverflow.com/questions/ask | head -n 1 | xargs)"
我是 bash 的新手,所以也许我丢失了一些重要的东西。
解决方案
以curlResult
空格结尾,后跟\r
. 您可以将它们从变量中删除或在测试中忽略它们。我会用
if [[ "$curlResult" =~ "HTTP/2 200" ]]; then
echo "OK"
else
echo "NOK"
fi
推荐阅读
- android - 如何使用 kotlin 显示警报
- symfony - 可以允许 Messenger 的消费命令从 SQS 消息读取失败中恢复吗?
- swift - 如何通过在同一 CoreData 模型中提供 id(UUID) 来获取数据?
- python - PyTorch 中具有可变输出大小的多对多 RNN
- python - 围绕椭圆移动圆
- generics - 通用特征和生命周期的问题
- html - 如何从 CSS 动画中删除空白区域
- python - 如何在不重复的情况下加入数据框?
- optimization - Fortran 提高大型数组写入文件速度的最佳方法
- reactjs - 如何在对象中键入 inded 签名