If-if स्टेटमेंट में grep का उपयोग करना [बंद]


10

यदि कोई स्ट्रिंग फ़ाइल में नहीं है तो मेरा कोड आउटपुट क्यों नहीं कर रहा है। जब मैं एक स्ट्रिंग दर्ज करता हूं और यह फ़ाइल में नहीं होता है, तो कोई प्रतिक्रिया नहीं होती है, यह फिर से शुरुआत में वापस आ जाता है। क्या कोई मुझे बता सकता है कि मेरे कोड में क्या गलत है?

while :
do
echo "Please enter a string"
read input_string
echo "Please enter the file name too see if that string is present in it - (Enter .abw after)"
read input_string1
if grep -q $input_string $input_string1 ; then
echo  "Your string has been found"
fi
done

3
आप क्या होने की उम्मीद कर रहे हैं?
पैट्रिक

यह कहने का मतलब था कि एक स्ट्रिंग जो आप दर्ज करते हैं, यह फ़ाइल में इसे ढूंढता है और यह कहता है कि क्या यह स्ट्रिंग मौजूद है। मुझे अब एहसास हुआ है कि मुझे दूसरे के लिए एक और बिट कोड दर्ज करने की आवश्यकता है। धन्यवाद
एडम पॉसर

input_stringवास्तव में बोलने का नाम नहीं है, वैसे :)
मैरियन

जवाबों:


10
while :
 do
     echo "Please enter a string"
     read input_string
     echo "Please enter the file name too see if that string is present in it - (Enter .abw after)"
     read input_string1
     grep -q "${input_string}" "${input_string1}"                                                                 
     if [ $? -eq 0 ] ; then
         echo  "Your string has been found"
     else 
         echo "Your string has not been found"
     fi
 done

1
मैंने अभी इस कोड की कोशिश की है और यह धन्यवाद काम करता है! मुझे एहसास नहीं था कि मेरी सारी समस्या एक और बयान नहीं होने के साथ थी। त्वरित प्रतिक्रिया के लिए धन्यवाद
एडम पोएसर 12

2
आपको grep मापदंडों को उद्धृत करने की आवश्यकता है। सोचें कि अगर मेरा खोज स्ट्रिंग शामिल है -v, या फ़ाइल नाम में स्थान हैं तो क्या होगा ।
Ángel

0

आपने अपनी लापता शाखा के बारे में पता लगाया, लेकिन एक सुझाव:

उपयोग $input_string $input_string1करने के बजाय ${input_string} ${input_string1}केवल यह सुनिश्चित करने का प्रयास करें कि आपको $input_string1 का पालन नहीं करना है ।


नहीं, आपका प्रस्तावित प्रतिस्थापन मूल के बराबर है। $input_string1चर का मूल्य input_string1(विभाजित और ग्लोबेड है, क्योंकि यह उद्धृत नहीं है), यह चर को शामिल नहीं करता है input_string
गिल्स एसओ- बुराई को रोकें '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.