मेरे पास यह देखने के लिए एक सरल स्क्रिप्ट है कि वेबपृष्ठ में एक निर्दिष्ट स्ट्रिंग है या नहीं। ऐसा लगता है:बैश स्ट्रिंग (कमांड आउटपुट) समानता परीक्षण
#!/bin/bash
res=`curl -s "http://www.google.com" | grep "foo bar foo bar" | wc -l`
if [[ $res == "0" ]]; then
echo "OK"
else
echo "Wrong"
fi
जैसा कि आप देख सकते हैं, मैं "ठीक" प्राप्त करने के लिए देख रहा हूं, लेकिन "गलत" मिला।
इसके साथ क्या गलत है?
यदि मैं [$ res == "0"] का उपयोग करता हूं, तो यह काम करता है। अगर मैं res = curl...
के बजाय res = "0" का उपयोग करता हूं, तो यह वांछित परिणाम भी प्राप्त कर सकता है।
इन मतभेदों क्यों हैं?
धन्यवाद, यह अच्छा समाधान है। लेकिन, मेरे प्रश्न के रूप में, मैं सिर्फ यह जानना चाहता हूं कि [[$ res == "0"]] इस मामले में क्यों काम नहीं कर रहा है, ताकि मैं भविष्य में उसी गलतियों को बनाने से बच सकूं – kliu
आप 'od' के साथ क्या देखते हैं -सी <<< "$ res" '? क्या अतिरिक्त सफेद जगह हैं? –
हां, आप सही हैं, डब्ल्यूसी आउटपुट में सफेद जगहें हैं। धन्यवाद। – kliu