ఒక బాష్ స్క్రిప్ట్ లోపల టెస్టు నిబంధనలు ఎలా ఉపయోగించాలి

పరీక్ష కమాండ్ మరొక మూలకంతో ఒక మూలకాన్ని సరిపోల్చడానికి లినక్స్ కమాండ్ లైన్లో ఉపయోగించబడుతుంది, అయితే ఇది సాధారణంగా బాష్ షెల్ స్క్రిప్ట్స్లో ఉపయోగించబడుతుంది, ఇది నియత తర్కం మరియు కార్యక్రమ ప్రవాహాన్ని నియంత్రించే నియత ప్రకటనల్లో భాగంగా ఉంటుంది.

ప్రాథమిక ఉదాహరణ

టెర్మినల్ విండోను తెరవడం ద్వారా మీరు కేవలం ఈ ఆదేశాలను ప్రయత్నించవచ్చు.

పరీక్ష 1 -eq 2 && echo "yes" || ప్రతిధ్వని "కాదు"

కింది కింది విభజన విచ్ఛిన్నం చేయవచ్చు:

సారాంశంలో, కమాండ్ 1 నుండి 2 కు సరిపోలుతుంది మరియు వారు "అవును" ప్రదర్శించబడుతున్న ప్రతిధ్వని "yes" స్టేట్మెంట్ను నిర్వహిస్తుంది మరియు అవి "అవును" ప్రదర్శించబడుతున్న ప్రతిధ్వని "నో" ప్రకటనను నిర్వర్తించక పోతే.

సంఖ్యలు పోల్చడం

మీరు సంఖ్యలుగా అన్వయించే అంశాలను పోల్చి ఉంటే, మీరు క్రింది పోలిక ఆపరేటర్లను ఉపయోగించవచ్చు:

ఉదాహరణలు:

పరీక్ష 1 -eq 2 && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "నో" ప్రదర్శిస్తుంది ఎందుకంటే 1 సమానం 2 కాదు)

test 1 -ge 2 && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "నో" ప్రదర్శిస్తుంది ఎందుకంటే 1 ఎక్కువ కాదు లేదా 2 కు సమానంగా ఉంటుంది)

test 1-gt 2 && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "నో" ప్రదర్శిస్తుంది ఎందుకంటే 1 2 కంటే ఎక్కువ కాదు)

test 1 -le 2 && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "అవును" ప్రదర్శిస్తుంది ఎందుకంటే 1 కన్నా తక్కువ లేదా 2 కి సమానంగా ఉంటుంది)

పరీక్ష 1-lt 2 && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "అవును" ప్రదర్శిస్తుంది ఎందుకంటే 1 కన్నా తక్కువ లేదా 2 కి సమానంగా ఉంటుంది)

test 1 -ne 2 && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "అవును" ప్రదర్శిస్తుంది ఎందుకంటే 1 సమానం 2 కాదు)

టెక్స్ట్ పోల్చడం

మీరు తీగలను అన్వయించే అంశాలను పోల్చి ఉంటే, మీరు ఈ క్రింది పోలిక ఆపరేటర్లను ఉపయోగించవచ్చు:

ఉదాహరణలు:

పరీక్ష "string1" = "string2" && echo "yes" || ప్రతిధ్వని "కాదు"

("స్ట్రింగ్ 1" సమాన కాదు "స్ట్రింగ్ 2" ఎందుకంటే స్క్రీన్ "లేదు" ప్రదర్శిస్తుంది)

పరీక్ష "string1"! = "string2" && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "అవును" ప్రదర్శిస్తుంది ఎందుకంటే "string1" సమాన కాదు "string2")

test -n "string1" && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్పై "అవును" ప్రదర్శిస్తుంది ఎందుకంటే "string1" సున్నా కంటే ఎక్కువ స్ట్రింగ్ పొడవును కలిగి ఉంది)

test -z "string1" && echo "yes" || ప్రతిధ్వని "కాదు"

(స్క్రీన్కి "నో" ప్రదర్శిస్తుంది ఎందుకంటే "string1" సున్నా కంటే ఎక్కువ స్ట్రింగ్ పొడవును కలిగి ఉంది)

ఫైల్స్ పోల్చడం

మీరు ఫైళ్ళను పోల్చి చూస్తే మీరు క్రింది పోలిక ఆపరేటర్లను ఉపయోగించవచ్చు:

ఉదాహరణలు:

test / path / to / file1 -n / path / to / file2 && echo "yes"

(File2 కంటే file1 కొత్తదైతే, అప్పుడు "yes" అనే పదం ప్రదర్శించబడుతుంది)

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

(file1 ఉంటే "అవును" అనే పదం ప్రదర్శించబడుతుంది)

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

(మీరు file1 స్వంతం అయితే "అవును" అనే పదం ప్రదర్శించబడుతుంది)

టెర్మినాలజీ

బహుళ నిబంధనలను పోల్చడం

ఇంతవరకు ప్రతిదీ ఒకదానితో మరొకటి పోల్చడం జరిగింది కానీ మీరు రెండు పరిస్థితులను పోల్చాలనుకుంటే.

ఉదాహరణకు, ఒక జంతువుకు 4 కాళ్ళు ఉంటే మరియు "మూ" గా ఉంటే అది బహుశా ఒక ఆవు. కేవలం 4 కాళ్ళ కోసం తనిఖీ చేయడం మీరు ఒక ఆవు కలిగి ఉంటారు, కానీ ఖచ్చితంగా చేసిన ధ్వనిని తనిఖీ చేస్తుందని హామీ ఇవ్వదు.

రెండు పరిస్థితులను పరీక్షించడానికి ఒకేసారి ఈ క్రింది ప్రకటన ఉపయోగించండి:

పరీక్ష 4 -eq 4-a "moo" = "moo" && echo "ఇది ఒక ఆవు" || ప్రతిధ్వని "ఇది ఒక ఆవు కాదు"

ఇక్కడ కీలక భాగం -a అనేది ఇది.

అదే పరీక్షను నిర్వహించడం మంచిది మరియు మరింత సాధారణంగా ఉపయోగించబడుతుంది మరియు ఇది క్రింది విధంగా ఉంటుంది:

పరీక్ష 4 -eq 4 && పరీక్ష "moo" = "moo" && echo "ఇది ఒక ఆవు" || ప్రతిధ్వని "ఇది ఒక ఆవు కాదు"

మీరు చేయాలనుకుంటున్న మరో పరీక్ష రెండు ప్రకటనలు పోల్చడం మరియు నిజమైన అవుట్పుట్ స్ట్రింగ్ అయితే. ఉదాహరణకు, మీరు "file1.txt" పేరుతో ఉన్న ఫైల్ లేదా "file1.doc" అని పిలవబడే ఒక ఫైల్ ఉందని మీరు అనుకుంటే, కింది ఆదేశం

test -e file1.txt -o -e file1.doc && echo "file1 exists" || echo "file1 ఉనికిలో లేదు"

ఇక్కడ ముఖ్య భాగం - లేదా ఇది నిలుస్తుంది.

అదే పరీక్షను నిర్వహించడం మంచిది మరియు మరింత సాధారణంగా ఉపయోగించబడుతుంది మరియు ఇది క్రింది విధంగా ఉంటుంది:

test -e file1.txt || test -e file1.doc && echo "file1 exists" || echo "file1 ఉనికిలో లేదు"

టెస్ట్ కీవర్డ్ తొలగించడం

మీరు నిజంగా పోలికను నిర్వహించడానికి పదం పరీక్షను ఉపయోగించాల్సిన అవసరం లేదు. ఈ క్రింది విధంగా చదరపు బ్రాకెట్లలో ప్రకటన జతపరచు:

[-e file1.txt] && echo "file1 exists" || echo "file1 ఉనికిలో లేదు"

[మరియు] ప్రాథమికంగా పరీక్ష మాదిరిగానే ఉంటుంది.

ఈ క్రింది విధంగా మీరు బహుళ పరిస్థితులను పోల్చడానికి మీరు మెరుగుపరుస్తారని ఇప్పుడు మీకు తెలుస్తుంది:

[4 -eq 4] && ["moo" = "moo"] && echo "ఇది ఒక ఆవు" || ప్రతిధ్వని "ఇది ఒక ఆవు కాదు"

[-e file1.txt] || [-e file1.doc] && echo "file1 exists" || echo "file1 ఉనికిలో లేదు"

సారాంశం

పరీక్ష కమాండ్ స్క్రిప్ట్స్లో మరింత ఉపయోగకరంగా ఉంటుంది ఎందుకంటే మీరు మరొక వేరియంట్ యొక్క వేరియంట్ మరియు కంట్రోల్ ప్రోగ్రామ్ ప్రవాహం యొక్క పరీక్షను పరీక్షించవచ్చు. ప్రామాణిక కమాండ్ లైన్లో, మీరు ఒక ఫైల్ ఉందో లేదో పరీక్షించడానికి దాన్ని ఉపయోగించవచ్చు