同じ文字列内の値の比較[終了]


0

私のスクリプトでは、ウェブサイトからデータを取得しています。

content=$(wget 10.0.1.5:8000/currentsong?sid=1 -q -O -);

それは、基本的にshoutcastサーバー上の曲情報です。しかし、問題があります:私はやりたい:新しい値が文字列の古い値と一致しない場合、何かをしてください。そのように:

if [ $content.new != $content.old ]; then
        echo "New song info there.."
else
        echo "NOTHING"
fi

どうやってやるの?

編集:私は、スクリプトがループで実行されると言って忘れました。


古いコンテンツはどこに保存されますか?
DisplayName

@DisplayName問題は、保存されていないことです。古い値を保存する方法がわかりません。
PepinCZ

その後、何らかのファイルなどに保存する必要があります。
DisplayName

@DisplayNameリアルタイムでそれを行う方法がわかりません。
PepinCZ

回答:


3

私は次のようなことをします

content=$(wget 10.0.1.5:8000/currentsong?sid=1 -q -O 
content_old=$(cat /tmp/content.old)
if [ "$content" != "$content_old" ]; then
        echo "New song info there.."
else
        echo "NOTHING"
fi
echo $content > /tmp/content.old

私はすでにそれを行ったが、私の問題は、$文字列と「$文字列」にあった、ありがとう
PepinCZ

ええ、問題は、$ stringが空の場合、bashには何も表示されないため比較が失敗することです。引用すると、bashには空の文字列が表示されます。シェルの奇妙な奇妙な癖の1つ:)
デビッドキング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.