所以我正在编写一个脚本来卷曲我写的会返回字符串的网站。我用它来比较文件中保存的值。我无法让条件语句为匹配值返回true。
以下是我的bash代码片段
var1=$(curl -s -w %{http_code}\\n www.somesite.com)
var2=$(cat somefile)
if [[ "$var1" = "$var2" ]]; then
echo "TRUE"
else
echo "FALSE"
fi
我手动查看了两个字符串,它们看起来完全相同。我已经用它完成了所有适用的选项。我已经将这两个值复制并粘贴到Notepad ++中并对预期的字符串进行了查找,并且它表示两个值都与find命令匹配。
显然,如果我手动将值放在条件中它返回true,那么我知道它不是我的条件语句。
我的猜测是卷曲末端有某种类型的隐藏字符...('\ r'或'\ n'或者我不知道的东西)...或者可能在文件的末尾我不知道。在尝试比较curl输出和文件内容时这是一个已知问题吗?
这可能是一个愚蠢的问题,但对于我的生活,我似乎无法将这些字符串与动态匹配,而不是在条件中对值进行硬编码。
任何建议都会很棒。感谢
答案 0 :(得分:-1)
$ diff -q -b <(echo $'abc\ndef') <(echo $'abc\r\ndef') > /dev/null ; echo $?
0
$ diff -q -b <(echo $'abc\ndef') <(echo $'abc\r\nde') > /dev/null ; echo $?
1