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

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

"స్క్రిప్ట్" అంటే ఏమిటి?

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

బాష్ ఉపయోగించే భాష దాని స్వంత వ్యాఖ్యాతచే నిర్వచించబడింది మరియు కార్న్ షెల్ (ksh) లేదా C షెల్ (csh) వంటి ఇతర షెల్‌ల వాక్యనిర్మాణాన్ని మిళితం చేస్తుంది. సాధారణంగా కన్సోల్‌లో ఉపయోగించే అనేక ఆదేశాలను స్క్రిప్ట్స్‌లో కూడా ఉపయోగించవచ్చు, ఒక నిర్దిష్ట పంపిణీకి సంబంధించినవి తప్ప.

స్క్రిప్ట్ యొక్క నిర్మాణం

ప్రారంభించడానికి మనకు టెక్స్ట్ ఎడిటర్ మరియు ప్రోగ్రామ్ కోరిక ఉండాలి. మేము .sh పొడిగింపుతో సేవ్ చేసే ఫైళ్ళను కన్సోల్ ద్వారా అమలు చేయవచ్చు (లేదా అర్థం చేసుకోవచ్చు), మొదటి పంక్తి ఈ క్రింది విధంగా ఉంటుంది:

#! / Bin / bash

ఫైల్‌ను అమలు చేయడానికి కన్సోల్‌ని ఉపయోగించమని ఇది సిస్టమ్‌కు చెబుతుంది. అదనంగా, # అక్షరం వ్యాఖ్యలను వ్రాయడానికి మిమ్మల్ని అనుమతిస్తుంది. సరళమైన ఉదాహరణను సృష్టించడానికి మేము ఈ క్రింది చిత్రంలో కనిపించే మరో పంక్తిని జోడిస్తాము:

ఎకో కమాండ్ తెరపై సందేశాన్ని ప్రదర్శిస్తుంది, ఈ సందర్భంలో విలక్షణమైన "హలో వరల్డ్!" మేము దానిని సేవ్ చేసి కన్సోల్‌తో ఎగ్జిక్యూట్ చేస్తే ఫలితం కనిపిస్తుంది.

ప్రాథమిక ఆదేశాలు

కింది ఆదేశాలు సాధారణమైనవి మరియు ఏ రకమైన ప్రోగ్రామ్‌కు అయినా చాలా ఉపయోగకరంగా ఉంటాయి. ఇంకా చాలా ఉన్నాయని మేము స్పష్టం చేస్తున్నాము, కానీ ప్రస్తుతానికి మేము ఈ క్రింది వాటిని కవర్ చేస్తాము.

మారుపేర్లు: పదాల స్ట్రింగ్‌ను చిన్నదానితో భర్తీ చేయడానికి అనుమతిస్తుంది, ఇది కోడ్ తగ్గింపును అనుమతిస్తుంది.

# # డౌన్‌లోడ్ ఫోల్డర్ అలియాస్ పర్ = '/ హోమ్ / యూజర్ / డౌన్‌లోడ్‌లు' అనే చిరునామాతో ప్రతి పిలిచే ఒక అలియాస్‌ను సృష్టించండి per unalias unalias ఉపయోగించండి

విరామం: లూప్ కోసం ఎంచుకునే వరకు, వెంటనే నిష్క్రమించడానికి మిమ్మల్ని అనుమతిస్తుంది (మేము తరువాత ఉచ్చులను వివరంగా అధ్యయనం చేస్తాము)

# 1 5 1 2 లో కౌంటర్ కోసం ప్రతి "లూప్ యొక్క మలుపు" కోసం 3 నుండి 4 వరకు సంఖ్యలను కేటాయించే ఒక లూప్‌ను సృష్టించండి ఎకో "$ కౌంటర్" # కౌంటర్ విలువ 5 కి సమానంగా ఉంటే [$ కౌంటర్ –ఎక్ 3] అప్పుడు # బ్రేక్ ఫై కోసం లూప్ నుండి నిష్క్రమిస్తుంది

కొనసాగించు - విచ్ఛిన్నం మాదిరిగానే, ఇది ప్రస్తుత లూప్‌ను విస్మరించి, తదుపరిదానికి వెళుతుంది.

# 1 5 1 2 లో కౌంటర్ కోసం ప్రతి "లూప్ యొక్క మలుపు" కోసం 3 నుండి 4 వరకు సంఖ్యలను కేటాయించే ఒక లూప్‌ను సృష్టించండి # చేయండి # $ కౌంటర్ విలువ 5 కి సమానంగా ఉంటే [$ counter –eq 3] అప్పుడు # కొనసాగించు ప్రస్తుత రౌండ్‌లోని తదుపరి రౌండ్‌కు దూకడం ద్వారా విశ్లేషించకుండా నిరోధిస్తుంది, అంటే # విలువ 3 ముద్రించబడదు. fi echo "$ counter" పూర్తయింది

డిక్లేర్: టైప్ సెట్ లాగానే వేరియబుల్స్ డిక్లేర్ చేస్తుంది మరియు వాటికి విలువలను కేటాయిస్తుంది (అవి అదే విధంగా పనిచేస్తాయి). మేము దానిని కొన్ని ఎంపికలతో మిళితం చేయవచ్చు: -i పూర్ణాంకాలను ప్రకటిస్తుంది; -r చదవడానికి-మాత్రమే వేరియబుల్స్ కోసం, దీని విలువను మార్చలేము; -ఒక శ్రేణుల కోసం లేదా “శ్రేణుల”; ఫంక్షన్ల కోసం -f; స్క్రిప్ట్ యొక్క పర్యావరణానికి వెలుపల "ఎగుమతి" చేయగల వేరియబుల్స్ కోసం -x.

డిక్లేర్ –i num = 12 డిక్లేర్ –x pi = 3.14

సహాయం: నిర్దిష్ట ఆదేశానికి సహాయం చూపిస్తుంది.

ఉద్యోగాలు: నడుస్తున్న ప్రక్రియలను చూపుతుంది.

# విత్ –సి ప్రతి ఆదేశాల యొక్క పిడ్ (ప్రాసెస్ ఐడి) తో, ఆదేశాల పేరును చూపిస్తాము. ఉద్యోగాలు -సిపి

లెట్: అంకగణిత వ్యక్తీకరణను అంచనా వేయండి

a = 11 లెట్ a = a + 5 # చివరికి మనం 16 ఎకో "11 + 5 = $ a" విలువను ప్రింట్ చేస్తాము.

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

స్థానిక v1 = "ఇది స్థానిక వేరియబుల్"

లాగ్అవుట్: షెల్ నుండి పూర్తిగా లాగ్ అవుట్ అవ్వడానికి అనుమతిస్తుంది; మేము ఒకటి కంటే ఎక్కువ షెల్ విండోలతో పనిచేసే సందర్భాలకు ఉపయోగపడుతుంది, దీనిలో నిష్క్రమణ ఆదేశం ఒక విండోను ఒకేసారి ముగించడానికి అనుమతిస్తుంది.

printf: డేటాను ప్రింట్ చేసి ఫార్మాట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. దీనికి చాలా ఎంపికలు ఉన్నాయి, కాబట్టి మేము కొన్నింటిని ప్రస్తావిస్తాము.

#% f ఒక తేలియాడే సంఖ్యగా, కొత్త # పంక్తి కోసం n "% fn" 5 5.000000 # & d దశాంశ సంఖ్యలను వాదనలుగా పంపడానికి అనుమతిస్తుంది printf "% d డాలర్లలో విలువైన% d ఆర్డర్లు ఉన్నాయి." 20 500 ఉన్నాయి 20 డాలర్ల విలువైన 500 ఆర్డర్లు.

చదవండి: ప్రామాణిక ఇన్పుట్ నుండి ఒక పంక్తిని చదవండి (ఉదాహరణకు కీబోర్డ్ ద్వారా డేటాను లోడ్ చేయడానికి ఉపయోగించే మాడ్యూల్). మేము వంటి ఎంపికలను పాస్ చేయవచ్చు: -t పఠన పరిమితి సమయం ఇవ్వడానికి; -a కాబట్టి ప్రతి పదం అనామే శ్రేణిలోని స్థానానికి కేటాయించబడుతుంది; -d రేఖ చివరిలో వ్రాయబడే డీలిమిటర్‌ను ఉపయోగించడానికి; ఇతరులలో.

ఎకో "మీ పేరును ఎంటర్ చేసి ENTER నొక్కండి" # వేరియబుల్ పేరు చదవండి పేరు ఎకో "మీ పేరు $ పేరు"

రకం: ఒక ఆదేశం మరియు దాని ప్రవర్తనను వివరిస్తుంది. ప్రతి ఆదేశానికి డేటా నిర్వచనాలను తెలుసుకోవడానికి ఇది ఉపయోగపడుతుంది.

టైప్ –a '[' # టైప్ [షెల్ బిల్టిన్ కమాండ్ [షెల్ బిల్టిన్ # -ఒక లిఖిత పేరుతో ఎక్జిక్యూటబుల్ # కలిగి ఉన్న డైరెక్టరీలను కనుగొనడానికి అనుమతిస్తుంది. [is / usr / bin / [

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

# మేము మా ప్రస్తుత పరిమితులను చూస్తాము ulimit –a # -f వినియోగదారులను # 512000 Kb (500 #Mb) కంటే పెద్ద ఫైళ్ళను సృష్టించలేకపోవడాన్ని అనుమతిస్తుంది. ulimit –v 512000

వేచి ఉండండి: కొనసాగడానికి ఒక నిర్దిష్ట ప్రక్రియ లేదా ఉద్యోగం కోసం వేచి ఉండండి.

# స్క్రిప్ట్ పిడ్ # 2585 యొక్క ప్రక్రియ కోసం వేచి ఉంది

2585 ​​వేచి ఉండండి

మేము స్క్రిప్ట్‌లకు జోడించగల ఇతర ఉపయోగకరమైన ఆదేశాలను చిహ్నాల ద్వారా సూచిస్తారు.

!!: చివరి ఆదేశాన్ని మళ్ళీ అమలు చేయండి

! wer: “wer” అనే వ్యక్తీకరణతో ప్రారంభమైన చివరి ఆదేశాన్ని అమలు చేస్తుంది.

'==', '! =', '>', '<', '> =', మరియు '<=': రిలేషనల్ ఆపరేటర్లు.

|: OR ఆపరేటర్ సాధారణంగా రెండు రెగ్యులర్ ఎక్స్‌ప్రెషన్స్‌లో చేరడానికి ఉపయోగిస్తారు.

: ఎస్కేప్ కమాండ్ మిమ్మల్ని వ్యక్తీకరణలను ఫార్మాట్ చేయడానికి అనుమతిస్తుంది. ఉదాహరణకు: సౌండ్ అలర్ట్ కోసం a, న్యూలైన్ కోసం n, బ్యాక్‌స్పేస్ కోసం b, మొదలైనవి.

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

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

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

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

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

*

*

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

  1.   మధ్యస్థ కష్టం అతను చెప్పాడు

    గొప్పది! ఏదేమైనా 2 వ్యాఖ్యలు: ఉబుంటు ట్యాగ్ సగం చాలా ఎక్కువ, ఎందుకంటే ఇది సాధారణమైనదాన్ని సాధారణీకరిస్తుంది. మరియు ఈ ట్యుటోరియల్స్ ముందుకు సాగితే, అవి ఒకదానితో ఒకటి అనుసంధానించబడి ఉంటే మంచిది….
    అలా కాకుండా, ఈ చర్య ఆసక్తికరంగా ఉంటుంది!

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

    మంచి సహకారం! గొప్పది!

  3.   జియోవన్నీ ఎస్కోబార్ సోసా అతను చెప్పాడు

    ఈ విషయం గురించి మరింత తెలుసుకోవాలనుకునే వారికి సూచనలు మాత్రమే లేవు. కొన్ని మంచివి మన దేశాలలో కనుగొనడం అంత సులభం కాదు
    - లైనక్స్ ఆదేశాలు, సంపాదకులు మరియు షెల్ ప్రోగ్రామింగ్‌కు ఒక ప్రాక్టికల్ గైడ్, మార్క్ సోబెల్ (అధ్యాయం 8)
    - ప్రో బాష్ ప్రోగ్రామింగ్, క్రిస్ ఎఫ్ఎ జాన్సన్ (ఇది ఇతర సూచనలు లేదా కొంచెం ఎక్కువ జ్ఞానం ఉన్నవారికి అయినప్పటికీ).

    మంచి వ్యాసం.

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

    మంచి తేదీ! ధన్యవాదాలు!

  5.   ప్యాట్రిసియో డోరాంటెస్ జమర్నే అతను చెప్పాడు

    : "" లాగిన్ అవ్వండి "ఫంక్షన్ నా మునుపటి వ్యాఖ్యను తొలగించింది, కాబట్టి నేను దీన్ని మరింత సంగ్రహంగా చెబుతాను:
    ఉద్యోగాలు -సిపి
    బాష్: ఉద్యోగాలు: -సి: చెల్లని ఎంపిక
    ఉద్యోగాలు: వినియోగం: ఉద్యోగాలు [-lnprs] [జాబ్‌స్పెక్…] లేదా ఉద్యోగాలు -x కమాండ్ [అర్గ్స్]

    -eq -gt -lt దశాంశ పాయింట్ వేరియబుల్స్‌ను అంగీకరించదు, ఫోరమ్ మరియు ఫోరమ్‌ల మధ్య బిసి మంచి మిత్రుడు అని నేను కనుగొన్నాను:
    if [`echo 9.999> 10 | bc` -eq 1]; అప్పుడు
    ప్రతిధ్వని "9.999 10 కన్నా ఎక్కువ, మీ ప్రాసెసర్ ఇంకా పనిచేస్తుందని నిర్ధారించుకోండి"
    వేరే
    ఎకో «9.999 10 కంటే ఎక్కువ కాదు, ప్రతిదీ సాధారణంగా పనిచేస్తుంది
    fi

  6.   బ్రూక్లిన్ నుండి కాదు అతను చెప్పాడు

    ఈ పోస్ట్ బాష్ స్క్రిప్టింగ్ యొక్క అన్ని సాధారణతలను బాగా సంగ్రహిస్తుంది:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    ఈ సైట్‌లో మీరు బాష్ విశేషాల గురించి చాలా ప్రశ్నలు మరియు సమాధానాలను కనుగొంటారు:
    http://unix.stackexchange.com/questions/tagged/bash

    ఇక్కడ కొన్ని నిజంగా మంచి స్క్రిప్ట్‌లు ఉన్నాయి మరియు హే, మీరు ఇతరుల స్క్రిప్ట్‌లను చదవడం ద్వారా వాటిని నేర్చుకోవచ్చు:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   బ్రూక్లిన్ నుండి కాదు అతను చెప్పాడు

    బాష్ మినహా మీరు చెప్పేదానితో మీరు సరిగ్గా ఉన్నారు. నేను చూసిన ప్రతి వ్యవస్థలో / బిన్ / బాష్‌లో బాష్ ఉంది.

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

  8.   గిల్లె అతను చెప్పాడు

    యాదృచ్చికంగా, కళాశాలలో మేము బాష్ స్క్రిప్టింగ్‌ను ఉపయోగిస్తున్నాము కాబట్టి డేటా 10, చాలా మంచిది!

  9.   అలెక్స్ vi అతను చెప్పాడు

    డౌన్‌లోడ్ చేయడానికి పిడిఎఫ్ వెర్షన్ మంచిది! 😀

  10.   మార్కో ఆంటోనియో డి ఫ్యుఎంటెస్ అతను చెప్పాడు

    చాలా మంచి సైట్. చివరకు నాకు ఉపయోగకరమైనది దొరికింది. ధన్యవాదాలు.