2012-05-03 13 views
0

私は文字列を返すように書いたサイトをカールするスクリプトを書いています。私はそれをファイル内に保存された値を比較するために使用しています。私は、一致する値に対してtrueを返すために条件文を取得するのに問題があります。ここでファイルとカールの結果を比較するBashスクリプト

が私の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を実行しました。私はコピーして両方の値をメモ帳++に貼り付け、期待される文字列のための検索を行い、両方の値がfindコマンドと一致すると言いました。

明らかに、私が手動で値を条件に入れると、それは真を返すので、条件文ではないことが分かります。

私の推測では、カールの末尾にいくつかの種類の隠し文字があります( '\ r'または '\ n'または私が認識していないもの)...またはファイルの末尾に私が気付いていないカールの出力とファイルの内容を比較しようとするとき、これは既知の問題ですか?

これはおかしな質問かもしれませんが、私の人生では、条件内の値をハードコーディングする代わりに、これらの文字列を動的に一致させるように見えることはありません。

どのような提案も素晴らしいでしょう。ありがとう

+0

** hexdump **;の文字列を見てください) – delicateLatticeworkFever

答えて

-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 
関連する問題