Bash脚本将curl结果与文件进行比较

时间:2012-05-03 05:40:51

标签: bash shell curl cat

所以我正在编写一个脚本来卷曲我写的会返回字符串的网站。我用它来比较文件中保存的值。我无法让条件语句为匹配值返回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输出和文件内容时这是一个已知问题吗?

这可能是一个愚蠢的问题,但对于我的生活,我似乎无法将这些字符串与动态匹配,而不是在条件中对值进行硬编码。

任何建议都会很棒。感谢

1 个答案:

答案 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