బాష్ లో ప్రోగ్రామింగ్ - పార్ట్ 3

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

గొట్టాలు

ప్రత్యేకంగా, మరియు చాలా మలుపులు తీసుకోకుండా, పైప్‌లైన్ అనేది ఒక ప్రక్రియ యొక్క అవుట్‌పుట్‌ను మరొక ఇన్‌పుట్‌గా నిర్దేశించడానికి అనుమతించే ఒక పద్ధతి, ఇది కోడ్ యొక్క పంక్తులను తగ్గించడం, ఫలితాల కోసం నిల్వ వేరియబుల్స్‌తో పంపిణీ చేయడం మరియు మెరుగుపరచడం వంటి ప్రయోజనాల శ్రేణిని అనుమతిస్తుంది. స్క్రిప్ట్ యొక్క సామర్థ్యం.

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

ఉదాహరణ: ఇటీవలి కెర్నల్ సందేశాలను ముద్రించండి

సిస్టమ్ బూట్ సమయంలో #dmesg ఇటీవలి కెర్నల్ సందేశాలను మరియు లోడ్ చేసిన డ్రైవర్లను చూడటానికి మిమ్మల్ని అనుమతిస్తుంది; తోక ఫైల్ యొక్క చివరి భాగాలను లేదా # కమాండ్ ముద్రిస్తుంది

dmesg | తోక

అవి మనకు కావలసినంత క్లిష్టంగా ఉన్నప్పటికీ, పైప్‌లైన్ యొక్క ప్రాథమిక నిర్మాణం ఒక ఆదేశం యొక్క ఫలితాన్ని మరొకదానికి ఇన్‌పుట్‌గా ఉపయోగించడానికి అనుమతిస్తుంది, ఇది మేము వరుసగా పైపులను జోడించడం కొనసాగిస్తే కొత్త ఆదేశం యొక్క ఇన్‌పుట్‌ను అందిస్తుంది.

విధులు

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

ఫంక్షన్ల గురించి చాలా ముఖ్యమైన విషయం ఏమిటంటే, పారామితులను పంపే అవకాశం, వాటిని ప్రాసెస్ చేయడానికి మరియు అవుట్పుట్ను ఉత్పత్తి చేయడానికి వారు ఉపయోగించే డేటా. దీని నిర్మాణం క్రింది విధంగా ఉంది:

ఫంక్షన్ ఫంక్షన్-పేరు {

ప్రక్రియలు

}

ఉదాహరణ: tcp ప్రోటోకాల్‌పై పనిచేసే సేవలను చూపించే ఫంక్షన్. మరిన్ని పైపులను ఎలా ఉపయోగించాలో కూడా మనం చూడవచ్చు.

# మేము ఒక ఫంక్షన్ పేరును నిర్వచించాము, అది మనకు నచ్చినది కావచ్చు.

ఫంక్షన్ services_tcp {

# క్యాట్ / etc / services ఫోల్డర్ యొక్క విషయాలను సంగ్రహించి ప్రదర్శిస్తుంది, ఇది # అన్ని అనుబంధ పోర్ట్‌లతో అన్ని సేవలను కలిగి ఉంటుంది.

# మొదటి grep జాబితాను తీసుకుంటుంది మరియు వ్యాఖ్యలను తొలగిస్తుంది, –v తో మేము ఫలితాన్ని విలోమం చేస్తాము

# రెండవ grep tcp కి సంబంధించిన వాటిని మాత్రమే చూపిస్తుంది

పిల్లి / etc / services | grep –v "^ #" | grep tcp

}

మేము ఈ ఫంక్షన్‌ను అమలు చేయాల్సిన అవసరం వచ్చినప్పుడు దాన్ని దాని పేరుతో పిలవాలి:

tcp_services

ఈ సందర్భంలో ఇది పారామితులు లేకుండా పనిచేస్తుంది; అది జరిగితే, ఫంక్షన్ సరిగ్గా పనిచేయడానికి మేము వాటిని తప్పక జోడించాలి, లేకపోతే ఫంక్షన్ సరిగా పనిచేయదు. రిటర్న్ ఉపయోగించడం ఒక ఫంక్షన్ ప్రక్రియ ఫలితంగా విలువను తిరిగి ఇవ్వడానికి అనుమతిస్తుంది.

ఉదాహరణ: 2 సంఖ్యల మొత్తాన్ని లెక్కించే ఇన్‌పుట్ పారామితులతో ఫంక్షన్.

#! / Bin / bash
ఫంక్షన్ మొత్తం ()
{
# లెట్‌తో మనం కోట్స్ లోపల ఆపరేషన్‌ను అమలు చేయవచ్చు
"result = $ 1 + $ 2"

# రిటర్న్ పూర్ణాంక విలువను తిరిగి ఇవ్వడానికి అనుమతిస్తుంది. రిటర్న్ ఎగ్జిక్యూట్ అయిన తర్వాత, విలువ the వేరియబుల్ లోపల జమ చేయబడుతుంది?
తిరిగి $ ఫలితం;
}
 
# మొత్తం ఫంక్షన్ అంటారు మరియు మేము 2 ఇన్పుట్ పారామితులను పాస్ చేస్తాము.

2 3 జోడించండి

# యొక్క విలువను ముద్రిస్తుంది? కోట్లలో వేరియబుల్ యొక్క వాస్తవ విలువను ఎకో అంచనా వేస్తుంది
echo -e "ఫలితం = $?";

జువాన్ కార్లోస్ ఓర్టిజ్ ధన్యవాదాలు!


వ్యాసం యొక్క కంటెంట్ మా సూత్రాలకు కట్టుబడి ఉంటుంది సంపాదకీయ నీతి. లోపం నివేదించడానికి క్లిక్ చేయండి ఇక్కడ.

7 వ్యాఖ్యలు, మీదే వదిలేయండి

మీ వ్యాఖ్యను ఇవ్వండి

మీ ఇమెయిల్ చిరునామా ప్రచురితమైన కాదు. లు గుర్తించబడతాయి గుర్తించబడతాయి *

*

*

  1. డేటాకు బాధ్యత: మిగ్యుల్ ఏంజెల్ గాటన్
  2. డేటా యొక్క ఉద్దేశ్యం: కంట్రోల్ స్పామ్, వ్యాఖ్య నిర్వహణ.
  3. చట్టబద్ధత: మీ సమ్మతి
  4. డేటా యొక్క కమ్యూనికేషన్: డేటా చట్టపరమైన బాధ్యత ద్వారా తప్ప మూడవ పార్టీలకు తెలియజేయబడదు.
  5. డేటా నిల్వ: ఆక్సెంటస్ నెట్‌వర్క్స్ (EU) హోస్ట్ చేసిన డేటాబేస్
  6. హక్కులు: ఎప్పుడైనా మీరు మీ సమాచారాన్ని పరిమితం చేయవచ్చు, తిరిగి పొందవచ్చు మరియు తొలగించవచ్చు.

  1.   నిల్ పాయింటర్ అతను చెప్పాడు

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

  2.   జువాంక్ అతను చెప్పాడు

    నిజం నాకు సందేహాన్ని మిగిల్చింది. ఏదేమైనా, ఫంక్షన్లతో సమస్యలను నివారించడానికి, ఫంక్షన్ విలువ లేదా స్ట్రింగ్‌ను తిరిగి ఇవ్వడానికి లేదా ముద్రించడానికి ప్రయత్నిస్తున్న సందర్భంలో మేము రిటర్న్‌ను ఎకోతో భర్తీ చేయవచ్చు.

  3.   అబెల్ ఎస్. మౌంట్ బిగ్ అతను చెప్పాడు

    ఇది నిజం, దీనిని పరిష్కరించడానికి మీరు bc ఆదేశాన్ని ఉపయోగించవచ్చు, మీరు ఉపయోగించగల మొత్తం ఫంక్షన్‌లో: result = `echo $ 1 + $ 2 | bc -ql`

  4.   లూయిస్ మిగుఎల్ అతను చెప్పాడు

    మంచి,

    నేను బాష్ ఫైళ్ళను ఎక్కడ సేవ్ చేయగలను అని తెలుసుకోవాలనుకుంటున్నాను, తద్వారా అవి సిస్టమ్ వెడల్పుగా నడుస్తాయి మరియు అది బిన్ డైరెక్టరీ కాదు, కానీ బ్యాకప్ కోసం నిలయంగా ఉంటుంది.

    ధన్యవాదాలు.

  5.   జాక్యిన్ అతను చెప్పాడు

    చాలా ధన్యవాదాలు, నేను స్క్రిప్ట్‌లతో ప్రారంభిస్తున్నాను, మరియు నిజం ఇది చాలా ఉపయోగకరంగా ఉంది, మీరు మీ జ్ఞానాన్ని పంచుకోవడం చాలా దయతో ఉంది!
    కోట్తో ప్రత్యుత్తరం ఇవ్వండి

    1.    లినక్స్ ఉపయోగిద్దాం అతను చెప్పాడు

      ధన్యవాదాలు! కౌగిలింత!
      పాబ్లో

  6.   CRISTHIAN అతను చెప్పాడు

    సింటాక్స్ లోపం: "(" .హించనిది
    ఉదాహరణను అమలు చేయడానికి ప్రయత్నిస్తున్నప్పుడు నాకు లోపం వచ్చింది, నేను దానిని సరిగ్గా కాపీ చేసాను

    ఏమి కావచ్చు? నేను ఉబుంటు 14.10 లో ఉన్నాను