2013-02-27 39 views
5

मेरे पास एक चर है।एक बैश खोल स्क्रिप्ट चर में एक सबस्ट्रिंग कैसे खोजें

variable = This script is not found 

if [[ "$variable" = ~ "not found" ]]; 
then 
echo "Not Found" 
else 
echo "Its there" 
if 

im निष्पादित करते समय गलती से नीचे हो रही,

line 4: syntax error in conditional expression 
./test.sh: line 4: syntax error near `found"' 
./test.sh: line 4: `if [[ "$variable" = ~ "not found" ]]; ' 

किसी को भी मुझे बात कर सकता है, यहाँ क्या याद आ रही im?

variable="This script is not found" # <-- 

if [[ "$variable" =~ "not found" ]] # <-- 
then 
    echo "Not Found" 
else 
    echo "Its there" 
fi # <-- 

आप कर सकते हैं:

+2

वहाँ नहीं होना चाहिए में नीचे की कोशिश की है। '= ~' –

+0

के रूप में लिखें पहले की कोशिश की है। लेकिन अन्य गलती रेखा 4 प्राप्त हुई: सशर्त बाइनरी ऑपरेटर अपेक्षित ./test.sh: पंक्ति 4: '= ~ './test.sh के पास वाक्यविन्यास त्रुटि: पंक्ति 4:' अगर [[" $ चर "= ~" नहीं मिला " ]]; ' – Boby

+1

क्या होता है यदि आप शीर्ष पर अपना चर बदलते हैं' variable = "यह स्क्रिप्ट नहीं मिली" '? सौभाग्य। – shellter

उत्तर

13
LIST="some string with a substring you want to match" 
SOURCE="substring" 

if echo "$LIST" | grep -q "$SOURCE"; then 
    echo "matched"; 
else 
    echo "no match"; 
fi 

गुड लक)

2
यहाँ

के अपने अगर बयान

if [[ "$variable" =~ "not found" ]]; then 
     echo "Not Found"; 
else 
     echo "Its there"; 
fi 
7

अपने संस्करण के साथ इसकी तुलना संकेत बिंदुओं पर एक सही निर्माण है एक असाइनमेंट में चारों ओर रिक्त स्थान नहीं लगाएंगे, और आपको एक स्ट्रिंग अक्षर का उद्धरण देना होगा जिसमें रिक्त स्थान हैं। आपको पीछे की जरूरत नहीं है; यदि आप अपनी लाइन पर डाल रहे हैं। और एक if-then "fi" के साथ समाप्त होता है "if" नहीं।

0

मैं कोड जो हमेशा एक ही परिणाम लौट सही या गलत

के बीच `=` और `~` एक अंतरिक्ष
if [[ "$variable" =~ "not found" ]]; then 
     echo "Not Found"; 
else 
     echo "Its there"; 
fi