బాష్ If-then-Else ఉదాహరణ

Bash If Then Else Example



ఈ పాఠంలో, మనం వ్రాసే బాష్ ఎన్విరాన్‌మెంట్ స్క్రిప్ట్‌లలో If-then-Else స్టేట్‌మెంట్‌లను ఎలా ఉపయోగించవచ్చో చూద్దాం. If-then-Else స్టేట్‌మెంట్‌లు కొన్ని షరతులు నెరవేరినప్పుడు స్క్రిప్ట్ చర్య యొక్క మార్గాన్ని నిర్వచించడానికి ఒక ఉపయోగకరమైన సాధనం. If-then-Else స్టేట్‌మెంట్‌ల సింటాక్స్ ఏమిటో చూద్దాం:

ఉంటేకొన్ని-ఆదేశాలు;
అప్పుడుతరువాత-ఆదేశాలు;
లేకపోతేఇంకా-కమాండ్స్;
ఉంటుంది

పైన చూపిన ఆదేశంలో, కొన్ని-కమాండ్‌లు నిజమని తేలితే లేదా దాని రిటర్న్ స్టేటస్ 0 అని తేలితే, అప్పుడు-ఆదేశాలు అమలు చేయబడతాయి. ఇది కాకపోతే, ELSE-COMMANDS అమలు చేయబడతాయి. కొన్ని-కమాండ్‌లలో, మేము సాధారణంగా కొన్ని స్ట్రింగ్ పోలిక లేదా విలువ పోలికను పూర్ణాంకాల రూపంలో చేస్తాము. మేము ఫైల్‌లను కలిగి ఉన్న అనేక కార్యకలాపాలను కూడా చేయవచ్చు. ఫైల్ ఆధారిత పరిస్థితులతో పనిచేసేటప్పుడు ప్రధానంగా ఉపయోగించే కొన్ని ప్రాథమిక ప్రాథమిక ఆదేశాలను చూద్దాం:







ప్రాథమిక అర్థం
[-కు] FILE ఉనికిలో ఉన్నప్పుడు నిజమని చూపుతుంది.
[-b] FILE ఉన్నప్పుడు & బ్లాక్ ప్రత్యేక ఫైల్ అయినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-c] FILE ఉన్నప్పుడు & అక్షర ప్రత్యేక ఫైల్ అయినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-డి] FILE ఉన్నప్పుడు & అది డైరెక్టరీ అయినప్పుడు నిజమైనదిగా చూపుతుంది.
[-మరియు] FILE ఉనికిలో ఉన్నప్పుడు నిజమని చూపుతుంది.
[-f] FILE ఉన్నప్పుడు & అది సాధారణ ఫైల్ అయినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-g] FILE ఉన్నప్పుడు & దాని SGID బిట్ సెట్ చేయబడినప్పుడు అది నిజం అవుతుంది.
[-h] FILE ఉన్నప్పుడు & అది సింబాలిక్ లింక్ అయినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-k] FILE ఉన్నప్పుడు & దాని స్టిక్కీ బిట్ సెట్ చేయబడినప్పుడు నిజమైనదిగా వస్తుంది.
[-p] FILE ఉనికిలో ఉన్నప్పుడు & అది పేరు పెట్టబడిన పైపు (FIFO) అయినప్పుడు నిజం అవుతుంది.
[-r] FILE ఉనికిలో ఉన్నప్పుడు మరియు తిరిగి చదవగలిగినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-s] FILE ఉనికిలో ఉన్నప్పుడు వాస్తవంగా చూపబడుతుంది మరియు సున్నా కంటే ఎక్కువ పరిమాణాన్ని కలిగి ఉంటుంది.
[-t] ఫైల్ డిస్క్రిప్టర్ FD తెరిచినప్పుడు మరియు టెర్మినల్‌ని సూచించినప్పుడు అది నిజం అవుతుంది.
[-u] FILE ఉన్నప్పుడు & దాని SUID (సెట్ యూజర్ ID) బిట్ సెట్ చేయబడినప్పుడు అది నిజం అవుతుంది.
[-ఇన్] ఫైల్ ఉనికిలో ఉన్నప్పుడు & వ్రాయగలిగినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-x] FILE ఉనికిలో ఉన్నప్పుడు & అమలు చేయదగినది అయినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-O] FILE ఉనికిలో ఉన్నప్పుడు మరియు సమర్ధవంతమైన వినియోగదారు ID యాజమాన్యంలో ఉన్నప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-G] FILE ఉనికిలో ఉన్నప్పుడు & సమర్ధవంతమైన గ్రూప్ ID యాజమాన్యంలో ఉన్నప్పుడు నిజమైనదిగా చూపబడుతుంది.
[ -ది ] FILE ఉన్నప్పుడు & అది సింబాలిక్ లింక్ అయినప్పుడు నిజమైనదిగా చూపబడుతుంది.
[-N] FILE ఉన్నప్పుడు & అది చివరిగా చదివినప్పటి నుండి సవరించబడింది.
[-S] FILE ఉనికిలో ఉన్నప్పుడు & సాకెట్‌గా నిజమైనదిగా చూపబడుతుంది.

THEN-CommandS మరియు ELSE-COMMANDS ఏదైనా చెల్లుబాటు అయ్యే UNIX ఆపరేషన్‌లు లేదా ఏదైనా ఎగ్జిక్యూటబుల్ ప్రోగ్రామ్ కావచ్చు. గమనించండి అప్పుడు మరియు ఉంటుంది ఆదేశాలు సెమీ కోలన్ ద్వారా వేరు చేయబడతాయి ఎందుకంటే అవి స్క్రిప్ట్ యొక్క పూర్తిగా ప్రత్యేక అంశాలుగా పరిగణించబడతాయి.



If-then-Else Simple Example

If-then-Else స్టేట్‌మెంట్‌లతో చాలా సులభమైన ఉదాహరణతో మా పాఠాన్ని ప్రారంభిద్దాం.
ఇక్కడ ఒక నమూనా కార్యక్రమం:



ఉదాహరణ అయితే

ఉదాహరణ అయితే





మేము మా స్క్రిప్ట్‌ను అమలు చేసినప్పుడు మనం చూసే అవుట్‌పుట్ ఇక్కడ ఉంది:

$ ifelse1.sh
విలువలు ఒకటే!
$

కమాండ్-లైన్ ఆర్గ్యుమెంట్‌లను ఉపయోగించడం

మేము మా స్క్రిప్ట్‌లలో కమాండ్-లైన్ ఆర్గ్యుమెంట్‌లను కూడా ఉపయోగించవచ్చు మరియు మేము నిర్వచించిన IF స్టేట్‌మెంట్‌లో ఒక షరతుగా వాదనల సంఖ్య మరియు విలువలను కూడా ఉపయోగించవచ్చు. మేము మొదట కింది కంటెంట్‌తో టెక్స్ట్ ఫైల్‌ని నిర్వచించాము:



నా పేరు LinuxHint. నేను సర్వర్‌లను ప్రేమిస్తున్నాను, ముఖ్యంగా ఉబుంటు వాటిని. వారు అలా ఉన్నారు
టెర్మినాలిష్!

ఇప్పుడు, మేము ఒక స్క్రిప్ట్ వ్రాయవచ్చు, ఇది టెక్స్ట్ ఫైల్‌లో ఒక పదం ఏర్పడిందో లేదో తెలుసుకుంటుంది. ఇప్పుడు స్క్రిప్ట్‌ను నిర్వచించండి:

బయటకు విసిరారు '$ 2 లో $ 1 కనుగొనడం'
పట్టు $ 1 $ 2
ఉంటే [ $? -పుట్టిన 0 ]
అప్పుడు
బయటకు విసిరారు $ 2 ఫైల్‌లో $ 1 కనుగొనబడలేదు. '
లేకపోతే
బయటకు విసిరారు $ 2 ఫైల్‌లో $ 1 కనుగొనబడింది. '
ఉంటుంది
బయటకు విసిరారు 'స్క్రిప్ట్ పూర్తయింది.'

ఈ స్క్రిప్ట్ చాలా డైనమిక్. ఇది కమాండ్-లైన్ నుండి కనుగొనడానికి పదాన్ని మరియు ఫైల్‌ను శోధించడానికి పరిగణించబడుతుంది. ఇప్పుడు, మేము మా స్క్రిప్ట్‌ను అమలు చేయడానికి సిద్ధంగా ఉన్నాము:

. ifelse2.sh ప్రేమ హలో. txt

మేము ఇలాంటి అవుట్‌పుట్‌ను చూస్తాము:

ప్రేమను కనుగొనడంలోహలో. టెక్స్ట్
ప్రేమ దొరికిందిలో ఫైల్హలో. టెక్స్ట్.
స్క్రిప్ట్ పూర్తయింది.

కమాండ్-లైన్ ఆర్గ్యుమెంట్‌ల సంఖ్యను తనిఖీ చేస్తోంది

IF స్టేట్‌మెంట్ లోపల, కమాండ్‌కు ఎన్ని కమాండ్-లైన్ ఆర్గ్యుమెంట్‌లు పంపబడ్డాయో కూడా మనం తనిఖీ చేయవచ్చు, తద్వారా మనం అదే పని చేయవచ్చు:

లెక్క=$ #
ఉంటే [ ! $ కౌంట్ -జిటి 1 ]
అప్పుడు
బయటకు విసిరారు 'తగినంత వాదనలు లేవు'
లేకపోతే
బయటకు విసిరారు 'మంచి ఉద్యోగం!'
ఉంటుంది

ఈ స్క్రిప్ట్‌ను ఇప్పుడు అమలు చేద్దాం, మేము ఈ క్రింది అవుట్‌పుట్‌ను చూస్తాము:

కమాండ్ లైన్ వాదనలు

కమాండ్ లైన్ వాదనలు

If-then-Elif-El Statements

మేము నిర్వచించిన ఆదేశాలను అమలు చేయడానికి మా ప్రోగ్రామ్ తీసుకునే నిర్ణయ మార్గాన్ని తగ్గించడానికి మేము ఒకే బ్లాక్‌లో బహుళ IF స్టేట్‌మెంట్‌లను కూడా కలిగి ఉండవచ్చు. మా స్క్రిప్ట్‌లలో బహుళ IF స్టేట్‌మెంట్‌లను నిర్వచించడానికి వాక్యనిర్మాణం ఇక్కడ ఉంది:

ఉంటేపరీక్ష-ఆదేశాలు;
అప్పుడు
రిజల్ట్-కమాండ్స్;
ఎలిఫ్
మరొక-ఆదేశాలు;
అప్పుడు
మరొక-ఫలితాలు-ఆదేశాలు;
లేకపోతే
ఆల్టర్నేట్-కమాండ్స్;
ఉంటుంది

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

లెక్క=$ #
ఉంటే [ $ కౌంట్ -ఎక్యూ 1 ]
అప్పుడు
బయటకు విసిరారు 'ఒక వాదన మాత్రమే కనుగొనబడింది.'
ఎలిఫ్ [ $ కౌంట్ -ఎక్యూ 2 ]
అప్పుడు
బయటకు విసిరారు 'మంచిది, రెండు వాదనలు కనుగొనబడ్డాయి.'
లేకపోతే
బయటకు విసిరారు 'మంచి ఉద్యోగం, అనేక వాదనలు కనుగొనబడ్డాయి!'
ఉంటుంది

ఈ ఆదేశంతో మనం తిరిగి పొందవచ్చు:

ఎలిఫ్ వేరే ఉదాహరణ అయితే

ఎలిఫ్ వేరే ఉదాహరణ అయితే

కేస్ స్టేట్‌మెంట్‌లను ఉపయోగించడం

IF-ELSE స్టేట్‌మెంట్‌లు మీరు నిర్ణయించుకోవాల్సిన ఎంపికల యొక్క పెద్ద జాబితాను కలిగి ఉన్నప్పుడు ఉపయోగకరంగా ఉంటాయి. ఒకవేళ మీరు ఖచ్చితమైన ఫలితంతో సరిపోయే కొన్ని సందర్భాల్లో మాత్రమే చర్యను చేయాలనుకుంటే, మేము బాష్ స్క్రిప్ట్‌లలో కూడా CASE స్టేట్‌మెంట్‌లను ఉపయోగించవచ్చు. దీని వాక్యనిర్మాణం ఇలా కనిపిస్తుంది:

కేసువ్యక్తీకరణలోCASE1)కమాండ్స్-టు-ఎగ్జిక్యూట్;
CASE2)కమాండ్స్-టు-ఎగ్జిక్యూట్;
CASE2)కమాండ్స్-టు-ఎగ్జిక్యూట్;
...)కమాండ్స్-టు-ఎగ్జిక్యూట్;
*)కమాండ్స్-టు-ఎగ్జిక్యూట్;
esac

* తో ఉన్న చివరి కేసు డిఫాల్ట్ కేస్‌గా పనిచేస్తుంది మరియు పైన నిర్వచించిన కేసులలో ఏదీ సరిపోలడం లేదని కనుగొనబడినప్పుడు అమలు చేయబడుతుంది.

CASE స్టేట్‌మెంట్‌లను ఉపయోగించి ఒక సాధారణ ఉదాహరణను త్వరగా నిర్మిద్దాం:

కేసు '$ 1' లో
1)
బయటకు విసిరారు 'విలువ 1.'
;;
2)
బయటకు విసిరారు 'విలువ 2.'
;;
3)
బయటకు విసిరారు 'విలువ 3.'
;;
*)
బయటకు విసిరారు 'ఇతర విలువ ఆమోదించబడింది.'
esac

ప్రతి CASE స్టేట్‌మెంట్ రద్దు చేయబడుతుంది ;; (డబుల్ సెమీ కోలన్ మార్కులు). ఈ ఆదేశంతో మనం తిరిగి పొందవచ్చు:

CASE ఉదాహరణ

CASE ఉదాహరణ

ముగింపు

ఈ పాఠంలో, బాష్ స్క్రిప్ట్‌లలో IF-ELSE, IF-THEN-ELIF మరియు CASE స్టేట్‌మెంట్‌లను ఎలా ఉపయోగించవచ్చో మేము చూశాము, మా ప్రోగ్రామ్‌లలో ఉండే విలువల ఆధారంగా నిర్దిష్ట చర్యలు తీసుకోవడానికి లేదా పొజిషనల్ ఉపయోగించి యూజర్ ఆమోదించిన విధంగా పారామితులు.