Linuxలో, మేము కమాండ్-లైన్ ఆర్గ్యుమెంట్లను బాష్ స్క్రిప్ట్కు ఇన్పుట్గా ఉపయోగిస్తాము. బాష్ ఈ కమాండ్-లైన్ ఆర్గ్యుమెంట్లను సీక్వెన్షియల్గా తీసుకోవచ్చు మరియు వాటిని ఒక ఐచ్ఛికంగా అన్వయించవచ్చు. ఈ ఆర్గ్యుమెంట్లు చర్యలు మరియు స్క్రిప్ట్ అవుట్పుట్ను డైనమిక్గా ప్రభావితం చేయడానికి మిమ్మల్ని అనుమతిస్తాయి.
ఇన్పుట్ మరియు అవుట్పుట్ను ప్రభావితం చేయడానికి మీరు ఈ ఆర్గ్యుమెంట్లను విభిన్నంగా కాన్ఫిగర్ చేయవచ్చు. అందుకే బాష్లో కమాండ్-లైన్ ఆర్గ్లను నిర్వహించడం చాలా అవసరం, అయితే చాలా మంది కొత్త వినియోగదారులు దీన్ని ఎలా చేయాలో నేర్చుకోవాలి. కాబట్టి ఈ గైడ్లో, మేము బాష్లో కమాండ్-లైన్ ఆర్గ్యుమెంట్లను నిర్వహించడానికి వివిధ మార్గాలను వివరిస్తాము.
బాష్లో కమాండ్ లైన్ ఆర్గ్యుమెంట్లను ఎలా నిర్వహించాలి?
బాష్లో కమాండ్ లైన్ ఆర్గ్లను నిర్వహించడానికి వివిధ మార్గాలు ఉన్నాయి కాబట్టి సంక్షిప్త సమాచారాన్ని పొందడానికి వాటిని పరిశీలిద్దాం:
గెటాప్ట్ ఫంక్షన్
బాష్లో ఆర్గ్యుమెంట్లను నిర్వచించడానికి మరియు అన్వయించడానికి ఎంపికలు మరియు సింటాక్స్ను అందించడం వలన గెటాప్ట్ ఫంక్షన్ సులభమైంది. ఇది Linux యొక్క అంతర్నిర్మిత ఫంక్షన్, మీరు డేటాబేస్ ఫైల్ను సృష్టించేటప్పుడు లేదా ఆర్గ్యుమెంట్ల ఆధారంగా నిర్దిష్ట ఫార్మాట్లో నివేదికను ఉపయోగించుకోవచ్చు. రెండు రకాల ఆర్గ్యుమెంట్లు ఉన్నందున చిన్న కమాండ్-లైన్ ఆర్గ్యుమెంట్లను అన్వయించడంలో getopt ఫంక్షన్ సహాయపడుతుంది:
- చిన్న వాదనలు: ఇవి హైఫన్ను అనుసరించే ఏక-అక్షర ఆర్గ్యుమెంట్లు. ఉదాహరణకు, -a, -l, -h, మొదలైనవి, ఒకే ఆర్గ్యుమెంట్లకు కొన్ని ఉదాహరణలు.
- సుదీర్ఘ వాదనలు: ఇవి డబుల్-హైఫన్ తర్వాత బహుళ-అక్షర ఆర్గ్యుమెంట్లు. –అన్ని, –జాబితా, –సహాయం, మొదలైన సుదీర్ఘ వాదనలకు వివిధ ఉదాహరణలు ఉన్నాయి.
మనం getopt యుటిలిటీని ఉపయోగించి కమాండ్ లైన్ ఆర్గ్యుమెంట్లను నిర్వహించే ఉదాహరణను తీసుకుందాం. మేము కింది సమాచారాన్ని కలిగి ఉన్న “getopt.sh” పేరుతో ఒక బాష్ స్క్రిప్ట్ను సృష్టించాము:
!/ డబ్బా / బాష్
అయితే గెటాప్ట్లు 'ఎ బి సి డి:' వివరాలు; చేయండి
కేసు ' $వివరాలు ' లో
ఎ )
ప్రతిధ్వని 'పౌరుడి పేరు $OPTARG ' ;;
బి )
ప్రతిధ్వని 'సిటిజన్ ఐడి $OPTARG ' ;;
సి )
ప్రతిధ్వని 'పుట్టిన ప్రదేశం $OPTARG ' ;;
డి )
ప్రతిధ్వని 'వృత్తి ఉంది $OPTARG ' ;;
* )
బయటకి దారి 1 ;;
esac
పూర్తి
మార్పు ' $(($OPTING -1) )'
ఉంటే [ ! -తో $1 ] ; అప్పుడు
ప్రతిధ్వని 'వైవాహిక స్థితి $1'
లేకపోతే
ప్రతిధ్వని 'ఎంట్రీలు లేవు'
బయటకి దారి 1
ఉంటుంది
ఉంటే [ ! -తో $2 ] ; అప్పుడు
ప్రతిధ్వని 'కుటుంబ సభ్యులు $2'
ఉంటుంది
ఇప్పుడు ఇన్పుట్లో అవసరమైన ఆర్గ్యుమెంట్లతో స్క్రిప్ట్ను అమలు చేద్దాం:
మీరు పై చిత్రంలో చూడగలిగినట్లుగా, మేము స్క్రిప్ట్ని గెటాప్ట్ ఫంక్షన్లతో మాత్రమే అమలు చేస్తాము మరియు పూర్తి ఫలితాన్ని పొందడానికి సాధారణ ఆర్గ్యుమెంట్లను జోడిస్తాము.
జెండాలను ఉపయోగించడం
ఫ్లాగ్లు హైఫన్లు(-) ముందు ఉన్న ఒకే అక్షరాలు తప్ప మరేమీ కాదు. మేము getopt ఫంక్షన్ని ఉపయోగించి ఆర్గ్యుమెంట్లను పాస్ చేసినప్పుడు, మేము ఫ్లాగ్లను ఉపయోగిస్తాము. -a, -b, -c అనేవి జెండాలకు కొన్ని ఉదాహరణలు. ఉదాహరణకు, స్క్రిప్ట్కి పౌరుడి పేరు, ID, స్థలం, వయస్సు మరియు వృత్తి అవసరం. అందువల్ల, పౌరుడి పేరు, ID, స్థలం, వయస్సు మరియు వృత్తిని ఏకకాలంలో నిర్వచించడానికి మేము j, k, l, m, n, జెండాలను ఉపయోగించాము:
#!/బిన్/బాష్కాగా గెటాప్ట్లు j:k:l:m:n: flag_info
చేయండి
కేసు ' ${flag_info} ' లో
< ఓల్ >
< అని > జె ) పౌరుడు పేరు = ${OPTARG} ;; అని >
< అని > కె ) పౌరుడు = ${OPTARG} ;; అని >
< అని > ఎల్ ) స్థలం = ${OPTARG} ;; అని >
< అని > m ) వయస్సు = ${OPTARG} ;; అని >
< అని > n ) వృత్తి = ${OPTARG} ;; అని >
ఓల్ >
esac
పూర్తి
ప్రతిధ్వని 'ఇక్కడ నమోదు చేయబడిన వివరాలు ఉన్నాయి:'
ప్రతిధ్వని 'పౌరుడి పేరు: $ పౌరుడి పేరు ' ;
ప్రతిధ్వని 'పౌరుల ID: $పౌరుడు ' ;
ప్రతిధ్వని 'స్థలం: $స్థలం ' ;
ప్రతిధ్వని 'వయస్సు: $వయస్సు ' ;
ప్రతిధ్వని 'వృత్తి: $వృత్తి ' ;
స్క్రిప్ట్ టెర్మినల్లో క్రింది ఫలితాన్ని ఇస్తుంది:
. /< స్క్రిప్ట్ > .ష -జె డానీ -కె 476 -ఎల్ టొరంటో -మీ 25 -ఎన్ రచయిత
ఉపయోగించి [ఇమెయిల్ రక్షించబడింది] లూప్లతో
ది ' [ఇమెయిల్ రక్షించబడింది] ”వేరియబుల్ అనేది అన్ని ఇన్పుట్ ఆర్గ్యుమెంట్ల శ్రేణి తప్ప మరొకటి కాదు. “ని ఉపయోగించి మనం ఎన్ని ఇన్పుట్లనైనా పాస్ చేయవచ్చు [ఇమెయిల్ రక్షించబడింది] ” వేరియబుల్. ఆర్గ్యుమెంట్ల ద్వారా మళ్ళించడానికి మీరు ఈ వేరియబుల్ని లూప్గా ఉపయోగించవచ్చు. ది ' [ఇమెయిల్ రక్షించబడింది] ” వేరియబుల్ అప్పుడు ఉపయోగపడుతుంది; మీకు ఇన్పుట్ పరిమాణం తెలియదు మరియు పొజిషనల్ ఆర్గ్యుమెంట్లను తీసుకోలేరు. కాబట్టి, మీరు ఉపయోగించవచ్చు ' [ఇమెయిల్ రక్షించబడింది] ” getopt ఫంక్షన్ని మళ్లీ మళ్లీ నిర్వచించడం కంటే. ఇక్కడ లూప్లను ఉపయోగించడం మరియు [ఇమెయిల్ రక్షించబడింది] స్క్రిప్ట్లో కలిసి:
#!/బిన్/బాష్ఒకదానిపై = ( “$ @ ” )
ఉంటే [ $# -gt 1 ]
అప్పుడు
జోడించు =$ ( ( ${num[0]} + ${num[1]} ) )
ప్రతిధ్వని 'అన్ని సంఖ్యల జోడింపు: $జోడించు '
తీసివేత =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )
ప్రతిధ్వని 'సంఖ్యల వ్యవకలనం: $ తీసివేత '
గుణించాలి =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )
ప్రతిధ్వని 'సంఖ్యల గుణకారం: $గుణకం '
డివిజన్1 =$ ( ( ${num[0]} / ${num[1]} ) )
ప్రతిధ్వని 'డివిజన్ ${num[0]} మరియు ${num[1]} ఉంది: $డివిజన్1 '
విభజన 2 =$ ( ( ${num[1]} / ${num[2]} ) )
ప్రతిధ్వని 'డివిజన్ ${num[1]} మరియు ${num[2]} ఉంది: $డివిజన్2 '
విభజన 3 =$ ( ( ${num[0]} / ${num[2]} ) )
ప్రతిధ్వని 'డివిజన్ ${num[0]} మరియు ${num[2]} ఉంది: $డివిజన్2 '
ఉంటుంది
పై స్క్రిప్ట్ కమాండ్-లైన్ ఆర్గ్యుమెంట్ల ఆధారంగా విభిన్న అంకగణిత గణనలను నిర్వహిస్తుంది. ఉదాహరణకు, మేము ఇన్పుట్గా 50, 35 మరియు 15ని నమోదు చేసాము:
స్థాన పారామితులను ఉపయోగించడం
మీరు స్థాన పారామితులను యాక్సెస్ చేయవచ్చు, అవి మొదట $1, ఆపై $2 మరియు మొదలైన వాటిని యాక్సెస్ చేస్తాయి. ఉదాహరణకు, పేరును మొదటి ఆర్గ్యుమెంట్గా చదివే స్క్రిప్ట్ని క్రియేట్ చేద్దాం, ఆపై రెండవది సిటీ. అయితే, మీరు ముందుగా నగరాన్ని దాటి తర్వాత పేరును దాటితే, అది పేరును నగరంగా పరిగణిస్తుంది మరియు దీనికి విరుద్ధంగా ఉంటుంది. ఈ భావనను అర్థం చేసుకోవడానికి క్రింది స్క్రిప్ట్లో లోతుగా డైవ్ చేద్దాం:
#!/బిన్/బాష్ప్రతిధ్వని 'నమోదు చేసిన వివరాలు ఇవిగో'
ప్రతిధ్వని 'పేరు $1'
ప్రతిధ్వని 'సిటీ $2'
టెర్మినల్లో స్క్రిప్ట్ను అమలు చేసే సమయంలో మీరు పేరు మరియు నగరాన్ని జోడించాలి:
చుట్టి వేయు
బాష్లో కమాండ్ లైన్ ఆర్గ్యుమెంట్లను నిర్వహించే పద్ధతుల గురించి మీరు తెలుసుకోవలసిన ప్రతిదీ ఇది. తగిన ఉదాహరణలతో మీరు ప్రయత్నించగల విభిన్న విధానాలను మేము వివరించాము. మీరు స్క్రిప్ట్లో ఆర్గ్యుమెంట్లను జోడించాలనుకుంటే వివిధ కమాండ్లు ఉన్నాయి. కాబట్టి వాటి గురించి మరింత తెలుసుకోవడానికి మీరు Linuxhintని సందర్శించారని నిర్ధారించుకోండి.