चाचणी कमांडचा उपयोग एका कमांडसोबत दुसर्या घटकाशी तुलना करण्यासाठी लिनक्स कमांड लाईनवर करता येतो परंतु तो बाहेल शेल स्क्रिप्टमध्ये सामान्यतः वापरला जातो ज्या कंडीशनल स्टेटमेंट्सचा भाग आहे जो लॉजिक आणि प्रोग्रॅम प्रवाह नियंत्रित करतात.
एक मूलभूत उदाहरण
आपण टर्मिनल खिडकी उघडून ही आज्ञा वापरू शकता.
चाचणी 1 -eq 2 && echo "होय" || प्रतिध्वनी "नाही"
वरील आदेश खाली मोडल्या जाऊ शकतात:
- चाचणी - याचा अर्थ असा की आपण तुलना करीत आहात
- 1 - आपण तुलना करणार आहोत असे प्रथम घटक
- -ईक (आपण कसे तुलना करत आहात, या प्रकरणात, आपण एक नंबर दुसर्या बरोबरीची चाचणी घेत आहात)
- 2 - घटक आपण पुन्हा पहिल्या घटकाची तुलना करीत आहात
- && - परिणाम सत्य असल्यास खालील विधाना चालवा
- echo "yes" - तुलना रिअल टाईप केल्यावर चालविण्याचे आदेश
- || - निकाल चुकीचा असेल तर खालील विधान चालवा
- echo "no" - तुलना रिटर्न फॉल्स म्हणून चालविण्याकरीता आदेश
थोडक्यात, कमांड 1 ते 2 ची तुलना करीत आहे आणि त्या ईको "होय" स्टेटमेंटची पूर्तता करते "yes" दर्शविते आणि ते "नो" असे प्रतिबिंबित करतात.
तुलना क्रमांक
आपण घटकांची तुलना करीत असल्यास आपण खालील तुलना ऑपरेटर्स वापरू शकता:
- -ईक - मूल्य 1 समान मूल्य 2 करते
- -ge - हे मूल्य 1 मोठे किंवा त्यास मूल्य 2 आहे
- -gt - मूल्य 2 पेक्षा जास्त मूल्य 1 आहे
- -le - हे मूल्य 1 पेक्षा कमी किंवा त्यास मूल्य 2 आहे
- -एलटी - मूल्य 2 पेक्षा कमी असलेले मूल्य 1 आहे
- -ne - मूल्य 1 समान मूल्य 2 नाही
उदाहरणे:
चाचणी 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 करते
- ! = - स्ट्रिंग 2 मध्ये स्ट्रिंग 2 वेगळा आहे
- -n - ही स्ट्रिंग लांबी 0 पेक्षा मोठी आहे
- -z - ही स्ट्रिंग लांबी 0 आहे
उदाहरणे:
चाचणी "स्ट्रिंग 1" = "स्ट्रिंग 2" && प्रतिध्वनी "होय" || प्रतिध्वनी "नाही"
(पडद्यावर "नाही" दाखवतो कारण "string1" हे "string2" च्या बरोबरीचे नाही)
चाचणी "स्ट्रिंग 1"! = "स्ट्रिंग 2" && प्रतिध्वनी "होय" || प्रतिध्वनी "नाही"
(स्क्रीनवर "होय" प्रदर्शित होते कारण "string1" हे "string2" च्या बरोबरीचे नाही)
test -n "string1" && echo "yes" || प्रतिध्वनी "नाही"
(पडद्यावर "होय" दाखवतो कारण "string1" मध्ये शून्यापेक्षा एक स्ट्रिंग लांबी जास्त असते)
test -z "string1" && echo "yes" || प्रतिध्वनी "नाही"
(पडद्यावर "नाही" दाखवतो कारण "string1" चे शून्य पेक्षा जास्त स्ट्रिंग लांबी असते)
फायलीची तुलना करणे
आपण फायली तुलना करत असल्यास आपण खालील तुलना ऑपरेटर्स वापरू शकता:
- -ef - फायलींमध्ये समान डिव्हाइस आणि आयनोड क्रमांक आहेत (ते समान फाइल आहेत)
- -nt - पहिली फाइल दुसऱ्या फाईलपेक्षा नवीन आहे
- -o - पहिली फाइल दुसरी फाईलपेक्षा जुनी आहे
- -b - फाइल अस्तित्वात आहे आणि ब्लॉक विशेष आहे
- -c - फाइल अस्तित्वात आहे आणि कॅरेक्टर स्पेशल आहे
- -d - फाइल अस्तित्वात आहे आणि एक निर्देशिका आहे
- -e - फाइल अस्तित्वात आहे
- -f - फाइल अस्तित्वात आहे आणि एक नियमित फाइल आहे
- -g - फाइल अस्तित्वात आहे आणि तिच्यात निर्दिष्ट समूह क्रमांक आहे
- -जी - वापरकर्त्याच्या समूहाद्वारे फाईल अस्तित्वात आणि मालक आहे
- -आ - फाइल अस्तित्वात आहे आणि प्रतिकात्मक दुवा आहे
- -k - फाइल अस्तित्वात आहे आणि त्याच्या स्टिकी बिट सेट आहे
- -एल - त्याचप्रमाणे -एच
- -ओ - फाईल उपलब्ध आहे आपण मालक आहात
- -p - फाइल अस्तित्वात आहे आणि नावाचे नाव आहे
- -r - फाइल अस्तित्वात आहे आणि वाचनीय आहे
- -स - फाइल अस्तित्वात आहे आणि शून्यापेक्षा मोठी आकार आहे
- -S - फाइल अस्तित्वात आहे आणि सॉकेट आहे
- -t - फाइल डिस्क्रिप्टर टर्मिनलवर उघडले आहे
- -u - फाइल अस्तित्वात आहे आणि सेट-युजर-आयडी बिट सेट आहे
- -w - फाइल अस्तित्वात आहे आणि लिहिण्यायोग्य आहे
- -x - फाइल अस्तित्वात आहे आणि एक्जीक्यूटेबल आहे
उदाहरणे:
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 अस्तित्त्वात नाही"
सारांश
स्क्रिप्टमध्ये चाचणी आदेश अधिक उपयुक्त आहे कारण आपण एका व्हेरिएबलच्या व्हॅल्यूची दुसर्या आणि नियंत्रण प्रोग्रामच्या प्रवाहाची चाचणी घेऊ शकता. मानक आदेश पंक्तीवर, आपण फाइल अस्तित्वात आहे किंवा नाही हे तपासण्यासाठी वापरू शकता