बैश स्क्रिप्ट के भीतर टेस्ट स्थितियों का उपयोग कैसे करें

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

एक मूल उदाहरण

आप टर्मिनल विंडो खोलकर बस इन आदेशों को आजमा सकते हैं

परीक्षण 1 -eq 2 && echo "yes" || गूंज "नहीं"

उपर्युक्त आदेश निम्नानुसार टूटा जा सकता है:

संक्षेप में, आदेश 1 से 2 की तुलना कर रहा है और वे गूंज से मेल खाते हैं "हां" कथन निष्पादित किया जाता है जो "हां" प्रदर्शित करता है और यदि वे गूंज से मेल नहीं खाते हैं तो "नहीं" कथन निष्पादित किया जाता है जो "नहीं" प्रदर्शित करता है।

संख्या की तुलना

यदि आप उन तत्वों की तुलना कर रहे हैं जो संख्याओं के रूप में पार्स करते हैं तो आप निम्न तुलना ऑपरेटर का उपयोग कर सकते हैं:

उदाहरण:

परीक्षण 1 -eq 2 && echo "yes" || गूंज "नहीं"

(स्क्रीन पर "नहीं" प्रदर्शित करता है क्योंकि 1 बराबर नहीं है 2)

परीक्षण 1 -ge 2 && echo "yes" || गूंज "नहीं"

(स्क्रीन पर "नहीं" प्रदर्शित करता है क्योंकि 1 2 से अधिक या बराबर नहीं है 2)

परीक्षण 1-जीटी 2 && echo "yes" || गूंज "नहीं"

(स्क्रीन पर "नहीं" प्रदर्शित करता है क्योंकि 1 2 से बड़ा नहीं है)

परीक्षण 1 -le 2 && echo "yes" || गूंज "नहीं"

(स्क्रीन पर "हां" प्रदर्शित करता है क्योंकि 1 2 से कम या बराबर है)

परीक्षण 1 -lt 2 && echo "yes" || गूंज "नहीं"

(स्क्रीन पर "हां" प्रदर्शित करता है क्योंकि 1 2 से कम या बराबर है)

परीक्षण 1-एक 2 और echo "हां" || गूंज "नहीं"

(स्क्रीन पर "हां" प्रदर्शित करता है क्योंकि 1 बराबर नहीं है 2)

पाठ की तुलना

यदि आप तत्वों की तुलना कर रहे हैं जो तारों के रूप में पार्स करते हैं तो आप निम्न तुलना ऑपरेटर का उपयोग कर सकते हैं:

उदाहरण:

परीक्षण "string1" = "string2" & echo "yes" || गूंज "नहीं"

(स्क्रीन पर "नहीं" प्रदर्शित करता है क्योंकि "string1" "स्ट्रिंग 2" के बराबर नहीं है)

परीक्षण "string1"! = "string2" &&cho "yes" || गूंज "नहीं"

(स्क्रीन पर "हां" प्रदर्शित करता है क्योंकि "string1" "स्ट्रिंग 2" के बराबर नहीं है)

test -n "string1" & echo "yes" || गूंज "नहीं"

(स्क्रीन पर "हां" प्रदर्शित करता है क्योंकि "string1" में स्ट्रिंग की लंबाई शून्य से अधिक है)

test -z "string1" & echo "yes" || गूंज "नहीं"

(स्क्रीन पर "नहीं" प्रदर्शित करता है क्योंकि "string1" में स्ट्रिंग की लंबाई शून्य से अधिक है)

फाइलों की तुलना करना

यदि आप फ़ाइलों की तुलना कर रहे हैं तो आप निम्न तुलना ऑपरेटर का उपयोग कर सकते हैं:

उदाहरण:

परीक्षण / पथ / से / फ़ाइल 1 -n / पथ / से / file2 && "हां" गूंजें

(यदि फ़ाइल 1 फ़ाइल 2 से नया है तो शब्द "हां" प्रदर्शित किया जाएगा)

test -e / path / to / file1 && echo "yes"

(अगर फ़ाइल 1 शब्द "हां" प्रदर्शित होगा)

test -O / path / to / file1 && echo "yes"

(यदि आपके पास फ़ाइल 1 है तो शब्द "हां" प्रदर्शित होता है ")

शब्दावली

एकाधिक स्थितियों की तुलना करना

इस प्रकार अब तक सबकुछ एक चीज की तुलना किसी अन्य के खिलाफ कर रहा है लेकिन यदि आप दो स्थितियों की तुलना करना चाहते हैं तो क्या होगा।

उदाहरण के लिए, यदि किसी जानवर के पास 4 पैर होते हैं और "म्यू" जाते हैं तो यह शायद एक गाय है। बस 4 पैरों की जांच करने से यह गारंटी नहीं मिलती है कि आपके पास एक गाय है लेकिन ध्वनि की जांच करना निश्चित रूप से करता है।

दोनों स्थितियों का परीक्षण करने के लिए एक बार में निम्नलिखित कथन का उपयोग करें:

परीक्षण 4 -eq 4 -a "moo" = "moo" && echo "यह एक गाय है" || गूंज "यह एक गाय नहीं है"

यहां का मुख्य हिस्सा है - जो कि खड़ा है और।

एक ही परीक्षण करने का एक बेहतर और अधिक सामान्य रूप से उपयोग किया जाने वाला तरीका है और यह निम्नानुसार है:

परीक्षण 4 -eq 4 && परीक्षण "moo" = "moo" & echo "यह एक गाय है" || गूंज "यह एक गाय नहीं है"

एक और परीक्षण जो आप बनाना चाहते हैं वह दो कथन की तुलना कर रहा है और यदि कोई स्ट्रिंग आउटपुट सही है। उदाहरण के लिए, यदि आप यह जांचना चाहते हैं कि "file1.txt" नाम की एक फ़ाइल मौजूद है या "file1.doc" नामक फ़ाइल मौजूद है, तो आप निम्न आदेश का उपयोग कर सकते हैं

test -e file1.txt -o -e file1.doc &&cho "file1 मौजूद है" || गूंज "फाइल 1 मौजूद नहीं है"

यहां का मुख्य हिस्सा है-जो कि खड़ा है या।

एक ही परीक्षण करने का एक बेहतर और अधिक सामान्य रूप से उपयोग किया जाने वाला तरीका है और यह निम्नानुसार है:

test -e file1.txt || test -e file1.doc &&cho "file1 मौजूद है" || गूंज "फाइल 1 मौजूद नहीं है"

टेस्ट कीवर्ड को खत्म करना

तुलना करने के लिए आपको वास्तव में शब्द परीक्षण का उपयोग करने की आवश्यकता नहीं है। आपको बस इतना करना है कि स्क्वायर ब्रैकेट में कथन को निम्नानुसार संलग्न करें:

[-e file1.txt] &&cho "file1 मौजूद है" || गूंज "फाइल 1 मौजूद नहीं है"

[और] मूल रूप से परीक्षण के समान ही है।

अब आप यह जानते हैं कि आप निम्न स्थितियों की तुलना निम्नानुसार कर सकते हैं:

[4 -eq 4] && ["moo" = "moo"] & echo "यह एक गाय है" || गूंज "यह एक गाय नहीं है"

[-e file1.txt] || [-e file1.doc] &&cho "file1 मौजूद है" || गूंज "फाइल 1 मौजूद नहीं है"

सारांश

परीक्षण कमांड स्क्रिप्ट में अधिक उपयोगी है क्योंकि आप एक चर के मान को दूसरे के खिलाफ और नियंत्रण कार्यक्रम प्रवाह का परीक्षण कर सकते हैं। मानक कमांड लाइन पर, आप यह जांचने के लिए इसका उपयोग कर सकते हैं कि कोई फ़ाइल मौजूद है या नहीं