0

因此,我正在编写一个脚本,该脚本将卷曲我编写的返回字符串的站点。我正在使用它来比较保存在文件中的值。我无法让我的条件语句为匹配值返回 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

我已经手动查看了两个字符串,它们似乎是相同的。我已经用它完成了所有适用选项的 wc。我已将这两个值复制并粘贴到 Notepad++ 中,并对预期的字符串进行了查找,它表示这两个值都与查找命令匹配。

显然,如果我手动将值放在它返回 true 的条件中,所以我知道它不是我的条件语句。

我的猜测是 curl 末尾有某种类型的隐藏字符......('\r'或'\n'或我不知道的东西)......或者可能在我不知道的文件末尾的。尝试比较 curl 输出和文件内容时,这是一个已知问题吗?

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

任何建议都会很棒。谢谢

4

1 回答 1

-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
于 2012-05-03T05:46:27.283 回答