Bash स्क्रिप्टमध्ये चाचणी अटींचा कसा वापर करावा

चाचणी कमांडचा उपयोग एका कमांडसोबत दुसर्या घटकाशी तुलना करण्यासाठी लिनक्स कमांड लाईनवर करता येतो परंतु तो बाहेल शेल स्क्रिप्टमध्ये सामान्यतः वापरला जातो ज्या कंडीशनल स्टेटमेंट्सचा भाग आहे जो लॉजिक आणि प्रोग्रॅम प्रवाह नियंत्रित करतात.

एक मूलभूत उदाहरण

आपण टर्मिनल खिडकी उघडून ही आज्ञा वापरू शकता.

चाचणी 1 -eq 2 && echo "होय" || प्रतिध्वनी "नाही"

वरील आदेश खाली मोडल्या जाऊ शकतात:

थोडक्यात, कमांड 1 ते 2 ची तुलना करीत आहे आणि त्या ईको "होय" स्टेटमेंटची पूर्तता करते "yes" दर्शविते आणि ते "नो" असे प्रतिबिंबित करतात.

तुलना क्रमांक

आपण घटकांची तुलना करीत असल्यास आपण खालील तुलना ऑपरेटर्स वापरू शकता:

उदाहरणे:

चाचणी 1 -eq 2 && echo "होय" || प्रतिध्वनी "नाही"

(पडद्यावर "नाही" दाखवतो कारण 1 समान नाही 2)

चाचणी 1 -ge 2 && echo "होय" || प्रतिध्वनी "नाही"

(पडद्यावर "नाही" दाखवतो कारण 1 मोठे किंवा त्यापेक्षा मोठे नाही 2)

चाचणी 1 -gt 2 && echo "होय" || प्रतिध्वनी "नाही"

(पडद्यावर "नाही" दाखवतो कारण 1 2 पेक्षा जास्त नाही)

चाचणी 1-ले 2 आणि& प्रतिध्वनी "होय" || प्रतिध्वनी "नाही"

(पडद्यावर "होय" दाखवतो कारण 1 2 पेक्षा कमी किंवा त्यापेक्षा कमी आहे)

चाचणी 1 -एलटी 2 && ईको "होय" || प्रतिध्वनी "नाही"

(पडद्यावर "होय" दाखवतो कारण 1 2 पेक्षा कमी किंवा त्यापेक्षा कमी आहे)

चाचणी 1-2 2 && echo "होय" || प्रतिध्वनी "नाही"

(पडद्यावर "होय" दाखवतो कारण 1 समान नाही 2)

मजकूर तुलना करणे

आपण स्ट्रिंग म्हणून विश्लेषित करणार्या घटकांची तुलना करत असल्यास आपण खालील तुलना ऑपरेटर्स वापरू शकता:

उदाहरणे:

चाचणी "स्ट्रिंग 1" = "स्ट्रिंग 2" && प्रतिध्वनी "होय" || प्रतिध्वनी "नाही"

(पडद्यावर "नाही" दाखवतो कारण "string1" हे "string2" च्या बरोबरीचे नाही)

चाचणी "स्ट्रिंग 1"! = "स्ट्रिंग 2" && प्रतिध्वनी "होय" || प्रतिध्वनी "नाही"

(स्क्रीनवर "होय" प्रदर्शित होते कारण "string1" हे "string2" च्या बरोबरीचे नाही)

test -n "string1" && echo "yes" || प्रतिध्वनी "नाही"

(पडद्यावर "होय" दाखवतो कारण "string1" मध्ये शून्यापेक्षा एक स्ट्रिंग लांबी जास्त असते)

test -z "string1" && echo "yes" || प्रतिध्वनी "नाही"

(पडद्यावर "नाही" दाखवतो कारण "string1" चे शून्य पेक्षा जास्त स्ट्रिंग लांबी असते)

फायलीची तुलना करणे

आपण फायली तुलना करत असल्यास आपण खालील तुलना ऑपरेटर्स वापरू शकता:

उदाहरणे:

test / path / to / file1 -n / path / to / file2 आणि& "होय" प्रतिध्वनी

(जर file1 फाइल 2 पेक्षा नविन असेल तर "होय" हा शब्द प्रदर्शित केला जाईल)

test -e / path / to / file1 आणि& echo "होय"

(जर file1 अस्तित्वात असेल तर "होय" हा शब्द प्रदर्शित होईल)

test -o / path / to / file1 आणि& echo "होय"

(जर आपण फाइल 1 चे मालक असाल तर "होय" हा शब्द प्रदर्शित केला जाईल)

परिभाषा

अनेक अटींची तुलना करणे

आतापर्यंत सर्व काही एका गोष्टीची तुलना एका विरुद्ध एकमेकांशी केली जात आहे परंतु आपण दोन अटींची तुलना करू इच्छित असल्यास काय होईल.

उदाहरणार्थ, जर एखाद्या प्राण्याकडे चार पाय आहेत आणि "मू" असेल तर तो कदाचित एक गाय आहे फक्त 4 पाय तपासण्यासाठी आपल्याकडे गायीची गाय असल्याची हमी देत ​​नाही परंतु खात्री करुन घेतलेली ध्वनि तपासते.

दोन्ही स्थिती एकाच वेळी खालील कथन वापरण्यासाठी चाचणी करण्यासाठी:

चाचणी 4 -एकत्र 4 -एक "मू" = "मू" && इको "ही एक गाय आहे" || प्रतिध्वनी "तो गाय नाही"

येथे मुख्य भाग म्हणजे- ए म्हणजे स्टॅन्ड आणि

समान चाचणी करण्याचा एक चांगला आणि अधिक सामान्यपणे वापरलेला मार्ग आहे आणि ते खालीलप्रमाणे आहे:

test 4 -eq 4 && test "moo" = "moo" && echo "ही गाय आहे" || प्रतिध्वनी "तो गाय नाही"

आपण बनवू इच्छित असलेली दुसरी चाचणी दोन स्टेटमेन्टची तुलना करीत आहे आणि एकतर खरे आउटपुट स्ट्रिंग आहे. उदाहरणार्थ, जर तुम्हाला "file1.txt" नावाची फाइल अस्तित्वात आहे किंवा "file1.doc" नावाची फाइल अस्तित्वात आहे हे तपासायचे असेल तर तुम्ही खालील कमांडचा वापर करू शकता.

test-e file1.txt -o -e file1.doc आणि& प्रतिध्वनी "फाइल 1 अस्तित्वात आहे" || प्रतिध्वनी "फाइल 1 अस्तित्त्वात नाही"

येथे मुख्य भाग म्हणजे -ओ म्हणजे स्टोरी.

समान चाचणी करण्याचा एक चांगला आणि अधिक सामान्यपणे वापरलेला मार्ग आहे आणि ते खालीलप्रमाणे आहे:

test -e file1.txt || test-e file1.doc आणि& प्रतिध्वनी "फाइल 1 अस्तित्वात आहे" || प्रतिध्वनी "फाइल 1 अस्तित्त्वात नाही"

कसोटी कीवर्ड नष्ट करणे

तुलना करण्यासाठी आपल्याला प्रत्यक्षात शब्द चाचणी वापरण्याची आवश्यकता नाही. आपल्याला असे करायचे आहे की खालील प्रमाणे स्क्वेअर ब्रॅकेटमधील स्टेटमेंटस बंद करा.

[-i file1.txt] && प्रतिध्वनी "फाइल 1 अस्तित्वात आहे" || प्रतिध्वनी "फाइल 1 अस्तित्त्वात नाही"

[आणि] मूलतः चाचणी म्हणून समान अर्थ.

आता आपण हे जाणता की आपण खालील प्रमाणे अनेक अटींची तुलना करणे सुधारू शकतो:

[4 -एकक 4] && ["मू" = "मू"] && इको "ही एक गाय आहे" || प्रतिध्वनी "तो गाय नाही"

[-i file1.txt] || [-e file1.doc] && प्रतिध्वनी "फाइल 1 अस्तित्वात आहे" || प्रतिध्वनी "फाइल 1 अस्तित्त्वात नाही"

सारांश

स्क्रिप्टमध्ये चाचणी आदेश अधिक उपयुक्त आहे कारण आपण एका व्हेरिएबलच्या व्हॅल्यूची दुसर्या आणि नियंत्रण प्रोग्रामच्या प्रवाहाची चाचणी घेऊ शकता. मानक आदेश पंक्तीवर, आपण फाइल अस्तित्वात आहे किंवा नाही हे तपासण्यासाठी वापरू शकता