NAME
sh - కమాండ్ ఇంటర్ప్రెటర్ (షెల్)
సంక్షిప్తముగా
sh -/ + ACefnuvxIimqsVEbc -o longname -వర్గాలు లక్ష్యం …
వివరణ
సి వ్యవస్థకు ప్రామాణిక ఆదేశ వ్యాఖ్యాత. ప్రస్తుత వెర్షన్sh అనుగుణంగా మార్చడానికి ప్రక్రియలో ఉందిPOSIX షెల్ కోసం 1003.2 మరియు 1003.2a స్పెసిఫికేషన్లు. ఈ సంస్కరణలో కొన్ని లక్షణాలలో కార్న్ షెల్ కు సమానంగా కనిపిస్తాయి, కానీ ఇది కార్న్ షెల్ క్లోన్ కాదు (ksh (1) చూడండి). మాత్రమే లక్షణాలు ద్వారా నియమించబడినPOSIX ఇంకా కొన్ని బర్కిలీ పొడిగింపులు, ఈ షెల్ లోకి విలీనం చేయబడ్డాయి. మేము ఆశిస్తున్నాముPOSIX సమయానికి 4.4 BSD విడుదల చేయబడుతుంది. ఈ మాన్ పుట ట్యుటోరియల్ లేదా షెల్ యొక్క పూర్తి స్పెసిఫికేషన్ కాదని ఉద్దేశించబడలేదు.
అవలోకనం
షెల్ ఒక ఫైల్ లేదా టెర్మినల్ నుండి పంక్తులను చదివే ఒక కమాండ్, వాటిని వివరించేది మరియు సాధారణంగా ఇతర ఆదేశాలను అమలు చేస్తుంది. వినియోగదారుడు వ్యవస్థలోకి లాగిన్ అయినప్పుడు నడుస్తున్న కార్యక్రమం ఇది (ఒక వినియోగదారుని chsh (1) ఆదేశంతో వేరే షెల్ ఎంచుకోవచ్చు). షెల్ ప్రవాహ నియంత్రణ నియంత్రణను కలిగి ఉన్న ఒక భాషను అమలు చేస్తుంది, చరిత్రలో మరియు లైన్ ఎడిటింగ్ సామర్థ్యాలతో సహా, డేటా నిల్వకు అదనంగా వివిధ లక్షణాలను అందించే స్థూల సదుపాయం. ఇది ఇంటరాక్టివ్ ఉపయోగం కోసం అనేక లక్షణాలను కలిగి ఉంటుంది మరియు పరస్పర మరియు ఇంటరాక్టివ్ ఉపయోగం (షెల్ స్క్రిప్ట్లు) రెండింటికీ అన్వయ భాష అనేది సర్వసాధారణంగా ఉంటుంది. అంటే, ఆదేశాలను నడుస్తున్న షెల్కు నేరుగా టైప్ చేయవచ్చు లేదా ఫైల్ను ఉంచవచ్చు మరియు షెల్ ద్వారా నేరుగా ఫైల్ను అమలు చేయవచ్చు.
ఆవాహన
ఏ అర్దములు లేవు మరియు షెల్ యొక్క ప్రామాణిక ఇన్పుట్ టెర్మినల్కు అనుసంధానించబడి ఉంటే (లేదా -నేనుజెండా సెట్), మరియు -సి ఎంపిక లేదు, షెల్ ఒక ఇంటరాక్టివ్ షెల్గా పరిగణించబడుతుంది. ఇంటరాక్టివ్ షెల్ సాధారణంగా ప్రతి ఆదేశానికి ముందు ప్రాంప్ట్ చేస్తుంది మరియు ప్రోగ్రామింగ్ మరియు కమాండ్ లోపాలను భిన్నంగా నిర్వహిస్తుంది (క్రింద వివరించిన విధంగా). మొదట ప్రారంభమైనప్పుడు, షెల్ వాదన 0 ని పరిశీలిస్తుంది మరియు అది డాష్తో ప్రారంభమైతే '-' షెల్ కూడా ఒక లాగిన్ షెల్గా పరిగణించబడుతుంది. వాడుకరి మొట్టమొదటి లాగిన్ అయినప్పుడు ఇది సాధారణంగా స్వయంచాలకంగా జరుగుతుంది. లాగిన్ షెల్ మొదట ఫైళ్లు / etc / ప్రొఫైల్ నుండి ఆదేశాలను చదువుతుంది మరియు అవి ఉన్నట్లయితే. పర్యావరణ వేరియబుల్ ఉంటేENV షెల్కు ప్రవేశానికి సెట్ చేయబడుతుంది లేదా లాగిన్ షెల్ యొక్క. లో సెట్ చేయబడుతుంది, షెల్ తదుపరి పేరుతో ఉన్న ఫైల్ నుండి ఆదేశాలను చదువుతుంది.ENVఅందువల్ల, ఒక వినియోగదారు.. ఫైల్ ఫైల్లో లాగిన్ సమయంలో మాత్రమే అమలు చేయవలసిన ఆదేశాలను ఉంచాలి, మరియు ప్రతి షెల్ కోసం అమలు చేయబడే ఆదేశాలుENV దాఖలు. సెట్ చేయడానికిENV కొన్ని ఫైల్కు వేరియబుల్, మీ హోమ్ డైరెక్టరీ యొక్క మీ
ENV = $ HOME / .shinit; ENV ను ఎగుమతి చేయండి
"షినిట్" కొరకు మీరు ప్రత్యామ్నాయంగా ఉంచారు. అప్పటినుండిENV షెల్ స్క్రిప్టులు మరియు ఇంటరాక్టివ్ కాని షెల్లు సహా షెల్ యొక్క ప్రతి ప్రవేశానికి ఫైలు చదవబడుతుంది, కింది పారాడిగ్మ్ ఆదేశాలలో ఆదేశాలను నియంత్రిస్తుందిENV ఇంటరాక్టివ్ ఆదేశాలకు ఫైల్ చేయండి. క్రింద "కేస్" మరియు "ఎస్సాక్" లోపల ఉన్న ఆదేశాల ఆదేశాలను (ఈ ఆదేశాలు తర్వాత వర్ణిస్తాయి):
కేసు $ - * లో * i)
ఇంటరాక్టివ్ ఉపయోగం కోసం # ఆదేశాలను మాత్రమే
…
esac
ఆప్షన్లతో పాటు కమాండ్ లైన్ వాదనలు తెలుపబడితే, షెల్ ఆదేశాలను (షెల్ లిపి) చదివే ఒక ఫైల్ పేరుగా మొదటి వాదనను ఉపయోగిస్తుంది మరియు మిగిలిన వాదనలు షెల్ యొక్క స్థితి పారామితులుగా ($ 1 , $ 2, మొదలైనవి). లేకపోతే, షెల్ దాని ప్రామాణిక ఇన్పుట్ నుండి ఆదేశాలను చదువుతుంది.
ఆర్గ్యుమెంట్ జాబితా ప్రోసెసింగ్
ఒకే అక్షరం ఐచ్ఛికాలు అన్నింటికీ ఒక వాదనగా వాడవచ్చు -o ఎంపిక. సెట్ -o ఈ క్రింది వివరణలో అక్షరం ఒకే అక్షరం ప్రక్కన ఇవ్వబడింది. ఒక డాష్ పేర్కొనడం `` - '' ప్లస్ '`+' 'ను ఉపయోగించినప్పుడు ఎంపికను ఆపివేస్తుంది. కింది ఐచ్ఛికాలు కమాండ్ లైన్ నుండి లేదా సెట్ (1) బిల్డ్ (తరువాత వివరించబడినవి) తో అమర్చవచ్చు.
-a allexport
కేటాయించిన అన్ని వేరియబుల్స్ ఎగుమతి. (4.4alpha కోసం అన్ఇంప్లిమెంటెడ్)
-c
కమాండ్ లైన్ నుండి ఆదేశాలను చదవండి. ప్రామాణిక ఇన్పుట్ నుండి ఏ ఆదేశాలు చదవబడవు.
-C noclobber
ఇప్పటికే ఉన్న ఫైల్లను ``> '' (4.4alpha కోసం అన్ఇంప్లిమెంటెడ్) తో భర్తీ చేయవద్దు.
-e errexit
ఇంటరాక్టివ్ కాకపోతే, ఏదైనా ప్రయత్నించని ఆదేశం విఫలమైతే వెంటనే నిష్క్రమించండి. ఒక కమాండ్ యొక్క నిష్క్రమణ స్థితి కమాండ్ను నియంత్రించడానికి ఉపయోగించినప్పుడు స్పష్టంగా పరీక్షిస్తుందిఉంటే elifwhile లేదావరకు లేదా కమాండ్ అనేది `` && '' లేదా `` || "'ఆపరేటర్ యొక్క ఎడమ చేతి ఆపరేషన్ అయితే.
-f noglob
మార్గమధ్య విస్తరణను నిలిపివేయి.
-n noexec
ఇంటరాక్టివ్ లేకపోతే, ఆదేశాలను చదివే కాని వాటిని అమలు చేయవద్దు. షెల్ స్క్రిప్టుల సిన్టాక్స్ ను పరిశీలించుటకు ఇది ఉపయోగపడుతుంది.
-u nounset
సెట్ చేయని ఒక వేరియబుల్ను విస్తరించడానికి ప్రయత్నిస్తున్నప్పుడు ప్రామాణిక సందేశానికి ఒక సందేశాన్ని వ్రాయండి మరియు షెల్ ఇంటరాక్టివ్ కాకుంటే, వెంటనే నిష్క్రమించండి. (4.4alpha కోసం అన్ఇంప్లిమెంటెడ్)
-v మందమైన
షెల్ దాని ఇన్పుట్ను ప్రామాణిక లోపాన్ని చదవటాన్ని వ్రాస్తుంది. డీబగ్గింగ్కు ఉపయోగకరమైనది.
-x xtrace
ప్రతి కమాండ్ను ప్రామాణిక లోపంకు (దీనిని అమలు చేయడానికి ముందే `+ 'వ్రాయండి.
-q quietprofile
ఉంటే -v లేదా -x ఐచ్ఛికాలు సెట్ చేయబడ్డాయి, ప్రారంభ ఫైళ్ళను చదివినప్పుడు వాటిని వర్తించవు, ఈవి / etc / ప్రొఫైల్ .ప్రొఫైల్ మరియు ఫైల్ENV ఎన్విరాన్మెంట్ వేరియబుల్.
-I ignoreeof
ఇంటరాక్టివ్ ఉన్నప్పుడు ఇన్పుట్ నుండి EOF యొక్క విస్మరించండి.
-i పరస్పర
ఇంటరాక్టివ్గా ప్రవర్తించేందుకు షెల్ను బలవంతం చేయండి.
-m మానిటర్
ఉద్యోగ నియంత్రణని ప్రారంభించండి (ఇంటరాక్టివ్గా స్వయంచాలకంగా సెట్ చేయండి).
-s stdin
ప్రామాణిక ఇన్పుట్ నుండి ఆదేశాలను చదవండి (ఏ ఫైల్ వాదనలు లేకుంటే స్వయంచాలకంగా సెట్ చేయండి). షెల్ ఇప్పటికే నడుపుట ప్రారంభించిన తర్వాత అమర్చినప్పుడు ఈ ఐచ్చికం ఎటువంటి ప్రభావము లేదు (అనగా సెట్ (1) తో).
-V vi
అంతర్నిర్మిత vi (1) ఆదేశ పంక్తి ఎడిటర్ (డిసేబుల్ -E అది సెట్ చేయబడి ఉంటే).
-E Emacs
అంతర్నిర్మిత emacs (1) ఆదేశ పంక్తి ఎడిటర్ (డిసేబుల్ -V అది సెట్ చేయబడి ఉంటే).
-B తెలియజేయాలి
నేపథ్య ఉద్యోగ పూర్తి యొక్క అసమకాలిక నోటిఫికేషన్ను ప్రారంభించండి. (4.4alpha కోసం అన్ఇంప్లిమెంటెడ్)
లెక్సికల్ స్ట్రక్చర్
షెల్ ఫైల్ నుండి పంక్తుల పరంగా ఇన్పుట్ను చదువుతుంది మరియు ఇది తెల్ల ఖాళీలు (బ్లాక్స్ మరియు ట్యాబ్లు) మరియు "ఆపరేటర్ల" అని పిలువబడే షెల్కు ప్రత్యేకమైన పాత్రల యొక్క నిర్దిష్ట సన్నివేశాలలో దానిని విచ్ఛిన్నం చేస్తుంది రెండు రకాలైన ఆపరేటర్లు ఉన్నాయి: నియంత్రణ ఆపరేటర్లు మరియు మళ్లింపు ఆపరేటర్లు (వారి అర్ధం తర్వాత చర్చించబడింది). క్రింది ఆపరేటర్ల జాబితా:
"కంట్రోల్ ఆపరేటర్లు:"
& && ( ) ; ;; | || "దారి మళ్లింపు ఆపరేటర్:" < > >| << >> <& >& <<- <>
కొన్ని అక్షరాలు లేదా పదాల యొక్క ప్రత్యేక అర్ధాన్ని ఆపరేటర్లు, వైస్పేస్, లేదా కీలకపదాలు వంటి షెల్ కు ప్రత్యేకంగా తొలగించడానికి ఉపయోగించబడుతుంది. కోటింగ్ మూడు రకాలు ఉన్నాయి: సరిపోలిన ఒకే కోట్లు, సరిపోలిన డబుల్ కోట్స్, మరియు బాక్ స్లాష్. Aq న్యూలైన్ మినహా, ఒక బాక్ స్లాష్ కింది పాత్ర యొక్క సాహిత్య అర్ధాన్ని సంరక్షిస్తుంది. AQ న్యూ లైన్ ముందున్న బాక్ స్లాష్ లైన్ కొనసాగింపుగా పరిగణించబడుతుంది. సింగిల్ కోట్స్లో ఉన్న మూలక అక్షరాలను అన్ని అక్షరాలు (సింగిల్ కోట్స్ తప్ప, సింగిల్-కోట్స్ సింగిల్లో సింగిల్-కోట్స్ స్ట్రింగ్లో ఉంచడం సాధ్యం కాదు) కాకుండా సాహిత్యాన్ని అర్థం. డబుల్ ఉల్లేఖనాల్లోని మూలక అక్షరాలు డాలర్సైన్ ($) బ్యాక్క్వొట్ (`) మరియు బాక్ స్లాష్ () మినహా అన్ని అక్షరాల యొక్క సాహిత్య అర్ధాన్ని సంరక్షిస్తుంది. డబుల్ కోట్స్ లోపల బాక్ స్లాష్ చారిత్రాత్మకంగా విచిత్రమైనది మరియు క్రింది అక్షరాలు మాత్రమే కోట్ చేయడానికి ఉపయోగపడుతుంది: $ ` లేకపోతే అది సాహిత్యంగానే ఉంది. రిజర్వు పదాలు షెల్కు ప్రత్యేక అర్ధాన్ని కలిగి ఉన్న పదాలు మరియు ఒక వరుస ప్రారంభంలో మరియు నియంత్రణ ఆపరేటర్ తర్వాత గుర్తించబడతాయి. ఈ క్రిందివి ప్రత్యేకించబడిన పదాలు: ! Taఎల్ఫ్ టా ఫి టాహ్ త సందర్భంలో else తTa then Ta {Ta} డు టాTa వరకు Ta ఉంటే Ta esac వారి అర్ధం తర్వాత చర్చించబడింది. అలియాస్ అలియాస్ (1) అంతర్నిర్మిత ఆదేశం ఉపయోగించి సెట్ చేయబడిన పేరు మరియు సంబంధిత విలువ. రిజర్వు చేయబడిన పదం సంభవించినప్పుడు (పైన చూడండి), మరియు రిజర్వేషన్ పదాల కోసం తనిఖీ చేసిన తర్వాత, షెల్ అది ఒక అలియాస్తో సరిపోలుతుందో లేదో చూడటానికి తనిఖీ చేస్తుంది. అది ఉంటే, అది దాని విలువతో ఇన్పుట్ స్ట్రీమ్లో దాన్ని భర్తీ చేస్తుంది. ఉదాహరణకు, '`ls -F' 'విలువతో` `lf' 'అనే మారుపేరు ఉన్నట్లయితే, lf ఫోబోర్ అవుతుంది ls -F ఫోబోర్ విరుద్ధంగా ఫంక్షన్లను ఎలా సృష్టించాలో నేర్చుకోకుండా కమాండ్ల కోసం షార్ట్హ్యాండ్లను సృష్టించడానికి సరళమైన వినియోగదారులకు మారుపేర్లు ఒక అనుకూలమైన మార్గాన్ని అందిస్తాయి. వారు lexically అస్పష్ట కోడ్ సృష్టించడానికి ఉపయోగించవచ్చు. ఈ ఉపయోగం నిరుత్సాహపడింది. ఈ షెల్ ఇది ఒక భాష ప్రకారం చదివే పదాలను అర్థం చేసుకుంటుంది, ఈ వివరణ యొక్క మాన్యువల్ వెలుపల ఉన్న వివరణ (BNF ను చూడండిPOSIX 1003.2 పత్రం). అయితే, ఒక లైన్ చదవబడుతుంది మరియు లైన్ యొక్క మొదటి పదం (లేదా కంట్రోల్ ఆపరేటర్ తర్వాత) రిజర్వు చేయబడిన పదం కాకుంటే, షెల్ ఒక సాధారణ ఆదేశంను గుర్తించింది. లేకపోతే, ఒక సంక్లిష్ట ఆదేశం లేదా కొన్ని ఇతర ప్రత్యేక నిర్మాణం గుర్తించబడి ఉండవచ్చు. ఒక సాధారణ ఆదేశం గుర్తించబడినట్లయితే, షెల్ కింది చర్యలను అమలు చేస్తుంది: రూపం `` పేరు = విలువ '' యొక్క ప్రధాన పదాలను తొలగించారు మరియు సాధారణ ఆదేశం యొక్క పర్యావరణానికి కేటాయించారు. దారి మళ్లింపు ఆపరేటర్లు మరియు వారి వాదనలు (క్రింద వివరించిన విధంగా) తీసివేసి ప్రాసెసింగ్ కోసం సేవ్ చేయబడతాయి. `విస్తరణలు 'అని పిలవబడే విభాగంలో వివరించిన విధంగా మిగిలిన పదాలు విస్తరించబడ్డాయి మరియు మొదటి మిగిలిన పదం కమాండ్ పేరుగా పరిగణించబడుతుంది మరియు కమాండ్ ఉన్నది. మిగిలిన పదాలు కమాండ్ యొక్క వాదనలుగా పరిగణించబడతాయి. కమాండ్ పేరు ఏదీ లేనట్లయితే, అంశం 1 లో గుర్తించిన "పేరు = విలువ" వేరియబుల్ కేటాయింపులు ప్రస్తుత షెల్పై ప్రభావం చూపుతాయి. తదుపరి విభాగంలో వివరించిన విధంగా దారి మళ్లింపులు నిర్వహిస్తారు. మళ్లింపులు ఒక కమాండ్ దాని ఇన్పుట్ చదివిన లేదా దాని అవుట్పుట్ను పంపుతున్నప్పుడు మార్చడానికి దారిమళ్లింపులు ఉపయోగించబడతాయి. సాధారణంగా, మళ్లింపులు ఓపెన్, సన్నిహితంగా లేదా ఫైల్కు ఉన్న సూచనను నకిలీ చేయండి. మళ్లింపు కోసం ఉపయోగించే మొత్తం ఫార్మాట్: n redir-op ఫైల్ ఎక్కడ redir-op గతంలో పేర్కొన్న మళ్లింపు ఆపరేటర్లలో ఒకటి. సాధ్యమయ్యే మళ్లింపుల జాబితా తరువాత ఉంది. Bq n అనేది ఒక ఐచ్ఛిక సంఖ్య, `3 'లో (ఒక ఫైల్ వర్ణనను సూచిస్తున్న` Bq 3' కాదు. n> ఫైల్ ప్రామాణిక అవుట్పుట్ (లేదా n) ను ఫైల్ చేయడానికి దారి. n> | ఫైలు అదే, కానీ భర్తీ -సి ఎంపిక. n >> ఫైల్ ఫైల్ను ప్రామాణిక అవుట్పుట్ (లేదా n) చేర్చండి. n <file ఫైల్ నుండి ప్రామాణిక ఇన్పుట్ (లేదా n) ను దారి మళ్లించండి. n1 <& n2 నకిలీ ప్రామాణిక ఇన్పుట్ (లేదా n1) ఫైల్ వర్ణన n2 నుండి. n <& - ప్రామాణిక ఇన్పుట్ను మూసివేయండి (లేదా n). n1> & n2 నకిలీ నుండి ప్రామాణిక అవుట్పుట్ (లేదా n1) నకిలీ. n> - ప్రామాణిక అవుట్పుట్ను మూసివేయండి (లేదా n). n <> ఫైల్ ప్రామాణిక ఇన్పుట్ (లేదా n) లో చదవడం మరియు వ్రాయడం కోసం ఫైల్ను తెరవండి. కింది మళ్లింపును తరచుగా "ఇక్కడ-పత్రం" అని పిలుస్తారు n << డీలిమిటర్ ఇక్కడ-doc టెక్స్ట్ … డీలిమిటర్ డీలిమిటర్ వరకు వరుస పంక్తుల మీద ఉన్న అన్ని వచనాలు దూరంగా ఉంచబడతాయి మరియు స్టాండర్డ్ ఇన్పుట్ మీద ఆదేశంకు లేదా అది పేర్కొనబడినట్లయితే ఫైలు వర్ణనలో అందుబాటులో ఉంటుంది.ప్రారంభ పంక్తిలో పేర్కొన్న విధంగా డీలిమిటర్ ఉల్లేఖించినట్లయితే, ఇక్కడ-డిఓసి-టెక్స్ట్ వాచ్యంగా పరిగణిస్తే, లేకపోతే టెక్స్ట్ పారామితి విస్తరణ, కమాండ్ ప్రత్యామ్నాయం మరియు అంకగణిత విస్తరణ ("విస్తరణల" విభాగంలో వివరించినట్లుగా) 'ఆపరేటర్ ఉంటే' `<< - '' బదులుగా` `<< '' తరువాత ఇక్కడ-పత్రం-పాఠంలో ప్రముఖ ట్యాబ్లు తొలగించబడ్డాయి. మూడు రకాలైన ఆదేశాలు ఉన్నాయి: షెల్ విధులు, అంతర్నిర్మిత ఆదేశాలు, మరియు సాధారణ కార్యక్రమాలు - ఆ ఆ క్రమంలో ఆదేశం (పేరు ద్వారా) శోధించబడుతుంది. వారు ప్రతి వేరే విధంగా అమలు చేయబడతారు. షెల్ ఫంక్షన్ అమలు చేయబడినప్పుడు, అన్ని షెల్ స్థాన పారామితులు (తప్ప, $ 0 మినహా, ఇది మారదు) షెల్ ఫంక్షన్ వాదనలుకు సెట్ చేయబడతాయి. కమాండ్ యొక్క పర్యావరణంలో స్పష్టంగా ఉంచబడే వేరియబుల్స్ (ఫంక్షన్ పేరుకు ముందు వాటిని కేటాయించడం ద్వారా) ఫంక్షన్కు స్థానికంగా తయారు చేయబడతాయి మరియు ఇచ్చిన విలువలకు సెట్ చేయబడతాయి. అప్పుడు ఫంక్షన్ నిర్వచనంలో ఇవ్వబడిన కమాండ్ అమలు చేయబడుతుంది. కమాండ్ పూర్తయినప్పుడు స్థాన పారామితులు వాటి అసలు విలువలకు పునరుద్ధరించబడతాయి. ఇది ప్రస్తుత షెల్ లోపల సంభవిస్తుంది. షెల్ అంతర్నిర్మితలు కొత్త ప్రక్రియను సృష్టించకుండా, షెల్కు అంతర్గతంగా అమలు చేయబడతాయి. లేకపోతే, కమాండ్ పేరు ఒక ఫంక్షన్ లేదా అంతర్నిర్మిత అనుసంధానించబడి లేకపోతే, కమాండ్ ఫైల్ వ్యవస్థలో సాధారణ ప్రోగ్రామ్గా (తరువాతి విభాగంలో వివరించిన విధంగా) శోధించబడుతుంది. ఒక సాధారణ ప్రోగ్రామ్ అమలు చేయబడినప్పుడు, షెల్ కార్యక్రమం అమలు చేస్తుంది, వాదనలు మరియు పర్యావరణాన్ని కార్యక్రమంలోకి పంపుతుంది. కార్యక్రమం సాధారణ ఎక్జిక్యూటబుల్ ఫైల్ కాకుంటే (అనగా, ఇది "మేజిక్ సంఖ్య" తో ప్రారంభం కాకపోతేASCII ప్రాతినిథ్యం "#!", కాబట్టి (2) ఎర్ ENOEXEC ను తిరిగి పంపుతుంది) షెల్ ప్రోగ్రామ్ను ఒక సబ్హెల్ లో అర్థం చేస్తుంది. బాల షెల్ ఈ సందర్భంలోనే పునఃప్రారంభించబడుతుంది, తద్వారా ఈ ప్రభావం షెల్ లో ఉన్న హ్యాష్డ్ ఆదేశాల స్థానాన్ని తప్పించి, ఆ-హాక్ షెల్ స్క్రిప్ట్ను నిర్వహించడానికి ఒక కొత్త షెల్ ప్రయోగించినట్లుగా ఉంటుంది. బాల. ఈ పత్రం యొక్క ముందలి సంస్కరణలు మరియు సోర్స్ కోడ్ కూడా తప్పుదారి పట్టించేవి మరియు ఒక షెల్ స్క్రిప్టును ఒక మాగ్ని సంఖ్య లేకుండా "షెల్ విధానం" గా సూచిస్తాయి. కమాండ్ను గుర్తించేటప్పుడు, షెల్ మొదట దాని పేరుతో షెల్ ఫంక్షన్ కలిగి ఉన్నదా అని చూస్తుంది. అప్పుడు ఆ పేరుతో ఒక అంతర్నిర్మిత ఆదేశం కోసం చూస్తుంది. ఒక అంతర్నిర్మిత కమాండ్ కనుగొనబడకపోతే, రెండు విషయాలు ఒకటి సంభవిస్తాయి: స్లాష్ ఉన్న కమాండ్ పేర్లు ఏ శోధనలు లేకుండానే అమలు చేయబడతాయి. షెల్ ప్రతి ప్రవేశమును శోధిస్తుందిPATH ఆదేశం కోసం క్రమంగా. విలువPATHవేరియబుల్ కోలన్లచే వేరు చేయబడిన ఎంట్రీల శ్రేణి ఉండాలి. ప్రతి ఎంట్రీ డైరెక్టరీ పేరును కలిగి ఉంటుంది. ప్రస్తుత డైరెక్టరీని ఒక ఖాళీ డైరెక్టరీ పేరుతో లేదా ఒక్క కాలంగా స్పష్టంగా సూచించవచ్చు. కమాండ్ నిష్క్రమించు స్థితి ప్రతి కమాండ్ ఇతర షెల్ ఆదేశాల ప్రవర్తనను ప్రభావితం చేసే నిష్క్రమణ స్థితిని కలిగి ఉంటుంది. ఉదాహరణగా, కమాండ్ సాధారణ లేదా విజయానికి సున్నాతో ఆగిపోతుంది, వైఫల్యం, దోషం లేదా తప్పుడు సూచన కోసం సున్నా కానిది. ప్రతి ఆదేశం కోసం మనిషి పేజీ వివిధ నిష్క్రమణ సంకేతాలు మరియు వారు అర్థం ఏమిటి సూచిస్తుంది. అదనంగా, అమలు చేయబడిన షెల్ ఫంక్షన్ వలె, అంతర్నిర్మిత ఆదేశాలు నిష్క్రమణ కోడ్లను తిరిగి పొందుతాయి. సంక్లిష్ట ఆదేశాలను నియంత్రణా ఆపరేటర్లు లేదా రిజర్వేషన్ పదాలతో సాధారణ ఆదేశాల కలయికలు, కలిసి ఒక పెద్ద సంక్లిష్ట ఆదేశం సృష్టించడం. సాధారణంగా, కమాండ్ కింది వాటిలో ఒకటి: లేకపోతే పేర్కొనకపోతే, కమాండ్ యొక్క నిష్క్రమణ స్థితిని కమాండ్చే అమలు చేయబడిన చివరి సాధారణ ఆదేశం. పైప్ లైన్ అనేది కంట్రోల్ ఆపరేటర్చే వేరు చేయబడిన ఒకటి లేదా ఎక్కువ ఆదేశాల క్రమం. గత కమాండ్ కాని అన్ని యొక్క ప్రామాణిక అవుట్పుట్ కమాండ్ యొక్క ప్రామాణిక ఇన్పుట్కు అనుసంధానించబడి ఉంటుంది. చివరి ఆదేశం యొక్క ప్రామాణిక ఉత్పత్తి షెల్ నుండి వారసత్వంగా ఉంటుంది, సాధారణంగా. పైప్లైన్ కోసం ఫార్మాట్: ! command1 | కమాండ్ 2 … Command1 యొక్క ప్రామాణిక అవుట్పుట్ command2 యొక్క ప్రామాణిక ఇన్పుట్కు అనుసంధానించబడింది. ప్రామాణిక ఇన్పుట్, స్టాండర్డ్ అవుట్పుట్ లేదా ఒక ఆదేశం యొక్క రెండింటిని ఆదేశాలలో భాగమైన మళ్లింపు ఆపరేటర్ల ద్వారా పేర్కొన్న ఏ మళ్లింపుకు ముందు పైప్లైన్చే కేటాయించబడుతుంది. పైప్లైన్ నేపథ్యంలో లేనట్లయితే (తరువాత చర్చించబడింది), షెల్ అన్ని ఆదేశాలను పూర్తి చేయడానికి వేచి ఉంటుంది. రిజర్వ్ చేసిన పదం! పైప్లైన్కు ముందుగా లేదు, నిష్క్రమణ స్థితిని పైప్లైన్లో పేర్కొన్న చివరి ఆదేశం యొక్క నిష్క్రమణ స్థితి. లేకపోతే, నిష్క్రమణ స్థితిని చివరి ఆదేశం యొక్క నిష్క్రమణ స్థితి యొక్క తార్కిక NOT కాదు. అంటే, చివరి ఆదేశం సున్నా తిరిగి ఉంటే, నిష్క్రమణ స్థితి 1; గత కమాండ్ సున్నా కంటే ఎక్కువ తిరిగి ఉంటే, నిష్క్రమణ స్థితి సున్నా అవుతుంది. ఎందుకంటే ప్రామాణిక ఇన్పుట్ లేదా ప్రామాణిక అవుట్పుట్ యొక్క పైప్లైన్ కేటాయింపు లేదా రెండింటి మళ్లింపుకు ముందు జరుగుతుంది, ఇది మళ్లింపు ద్వారా సవరించబడుతుంది. ఉదాహరణకి: $ command1 2> & 1 | command2 command1 యొక్క ప్రామాణిక ఇన్పుట్కు ప్రామాణిక 1 అవుట్పుట్ మరియు ప్రామాణిక దోషం రెండింటినీ పంపుతుంది. A; లేదా కొన్ని ఇతర షెల్లు కాకుండా, పైప్లైన్లో ప్రతి ప్రక్రియను ప్రేరేపించే షెల్ యొక్క బిడ్డ (ఇది షెల్ అంతర్నిర్మితం కాకపోతే, ప్రస్తుత షెల్లో ఇది అమలు అవుతుంది - కానీ పర్యావరణంపై దాని ప్రభావాన్ని తుడిచిపెట్టింది). నియంత్రణ కమీషనర్ ఆంపర్సాండెంట్ (&) చేత ఒక ఆదేశం రద్దు చేయబడితే, షెల్ ఆదేశాన్ని ఆదేశాత్మకంగా నిర్వహిస్తుంది - అనగా, తదుపరి కమాండ్ను అమలు చేయడానికి ముందు ఆదేశానికి షెల్ వేచి ఉండదు. నేపథ్యంలో ఒక ఆదేశం అమలు కోసం ఫార్మాట్: command1 & command2 & … షెల్ ఇంటరాక్టివ్ కానట్లయితే, ఒక అసమకాలిక కమాండ్ యొక్క ప్రామాణిక ఇన్పుట్ / dev / null కు అమర్చబడుతుంది జాబితా అనేది క్రొత్త లైన్లు, సెమీకోలన్లు లేదా ఆంపర్సాండ్స్లతో వేరు చేయబడిన సున్నా లేదా మరిన్ని ఆదేశాల క్రమం, మరియు ఈ మూడు అక్షరాలలో ఒకటి ఐచ్ఛికంగా రద్దు చేయబడుతుంది. జాబితాలోని ఆదేశాలను వారు వ్రాసిన క్రమంలో నిర్వహిస్తారు. ఆంపర్సండ్డు ఆదేశాన్ని అనుసరిస్తే, షెల్ కమాండ్ను ప్రారంభించి వెంటనే తదుపరి ఆదేశానికి కొనసాగించండి; లేదంటే కిందికి వెళ్ళడానికి ముందు కమాండ్ కోసం వేచివుంటుంది. `` && '' మరియు '' || '' మరియు- OR జాబితా నిర్వాహకులు. `` && '' మొదటి కమాండ్ను అమలు చేస్తుంది, ఆపై రెండవ ఆదేశం అమలు అవుతుంది iff మొదటి ఆదేశం యొక్క నిష్క్రమణ స్థితి సున్నా. `` || '' ఇదే, కానీ మొదటి ఆదేశం యొక్క నిష్క్రమణ స్థితి nonfero iff రెండవ ఆదేశం అమలు అవుతుంది. `` && '' మరియు '' || '' రెండూ ఒకే ప్రాధాన్యత కలిగివున్నాయి. ఆదేశం యొక్క వాక్యనిర్మాణం జాబితా ఉంటే అప్పుడు జాబితా చేయండి elif జాబితా అప్పుడు జాబితా … else జాబితా ఫిక్షన్ అయితే ఆదేశం యొక్క వాక్యనిర్మాణం జాబితాలో ఉన్నప్పుడు జాబితా చేయండి పూర్తి మొదటి జాబితా యొక్క నిష్క్రమణ స్థితి సున్నా అయితే రెండు జాబితాలు పదేపదే అమలు చేయబడతాయి. కమాండ్ సమానంగా ఉంటుంది, అయితే ఇది వరకు, పదం యొక్క పదాల నిష్క్రమణ స్థితిని సున్నా వరకు పునరావృతం చేయడానికి కారణమవుతుంది. కమాండ్ యొక్క వాక్యనిర్మాణం పదం వేరియబుల్ కోసం … జాబితా చేయండి పూర్తి పదాలు విస్తరించబడ్డాయి, ఆపై ప్రతి పనికి వేరియబుల్ సమితికి బదులుగా జాబితా పదేపదే అమలు అవుతుంది. చేయండి మరియు పూర్తి చెయ్యవచ్చు `` మరియు `` ` విరామ సింటాక్స్ మరియు కొనసాగించు ఆదేశం బ్రేక్ నంబర్ కొనసాగండి నంబర్ బ్రేక్ నామము అంతరాంతరంగా లేదా ఉచ్చులు సమయంలో ముగుస్తుంది. అంతరంగ లూప్ యొక్క తదుపరి మళ్ళింపుతో కొనసాగుతుంది. వీటిని బిల్డింగ్ కమాండ్లు వలె అమలు చేస్తారు. కేస్ ఆదేశం సింటాక్స్ కేస్ వర్డ్ ఇన్ నమూనా) జాబితా; … esac ఈ నమూనా వాస్తవానికి ఒకటి లేదా అంతకంటే ఎక్కువ నమూనాలను కలిగి ఉంటుంది (తరువాత వివరించిన షెల్ పద్ధతులు చూడండి), `` 'అక్షరాలు ద్వారా వేరు చేయబడతాయి. కమాండ్లు వ్రాయడం ద్వారా సమూహం చేయబడవచ్చు (జాబితా) లేదా {జాబితా; వీటిలో మొదటిది ఉపస్థాయిలో ఆదేశాలను అమలు చేస్తుంది. ఒక (జాబితా) లోకి సమూహం చేయబడిన బిల్లీన్ ఆదేశాలు ప్రస్తుత షెల్ను ప్రభావితం చేయదు. రెండవ రూపం ఇంకొక షెల్ కొంచెం ఎక్కువ సమర్థవంతంగా ఉంటుంది. ఈ విధంగా కలిసి గుంపుల ఆదేశాలను మీరు ఒక ప్రోగ్రాం అయినప్పటికీ వారి అవుట్పుట్ను మళ్ళించటానికి అనుమతిస్తుంది: {printf హలో; printf ప్రపంచ n ";}> గ్రీటింగ్ విధులు ఒక ఫంక్షన్ నిర్వచన వాక్యనిర్మాణం పేరు () ఆదేశం ఒక ఫంక్షన్ నిర్వచనం ఒక ఎక్జిక్యూటబుల్ స్టేట్మెంట్; ఉరితీయబడినప్పుడు అది పేరున్న ఫంక్షన్ ను ఇన్స్టాల్ చేసి, సున్నా యొక్క నిష్క్రమణ స్థితిని తిరిగి పంపుతుంది. ఆదేశం సాధారణంగా '' '' మరియు '' '}' 'మధ్య మధ్య వున్న జాబితా స్థానిక ఆదేశం ఉపయోగించి వేరియబుల్స్ ఫంక్షన్కు స్థానికంగా ప్రకటించబడవచ్చు. ఇది ఒక ఫంక్షన్ యొక్క మొట్టమొదటి ప్రకటనగా కనిపిస్తుంది మరియు వాక్యనిర్మాణం స్థానిక వేరియబుల్ | - … అంతర్నిర్మిత అంతర్నిర్మిత ఆదేశం వలె అమలు చేయబడుతుంది. వేరియబుల్ స్థానికంగా తయారైనప్పుడు, అది దాని యొక్క ప్రాధమిక విలువను పొందుతుంది మరియు ఒకవేళ పరిసర పరిధిలోని అదే పేరుతో వేరియబుల్ నుండి ఎగుమతి మరియు చదవడానికి మాత్రమే జెండాలు. లేకపోతే, వేరియబుల్ ప్రారంభంలో సెట్ చేయబడదు. షెల్ డైనమిక్ స్క్రోలింగ్ను ఉపయోగిస్తుంది, కాబట్టి మీరు వేరియబుల్ x స్థానికంగా ఫంక్షన్ గ్రా గా పిలవబడే, స్థానికంగా వేరియబుల్ x కి ప్రస్తావిస్తే వేరియబుల్ x లో ప్రకటించబడిన వేరియబుల్ x ను సూచిస్తుంది, . స్థానికంగా తయారు చేయగల ఏకైక ప్రత్యేక పరామితి `` - `'మేకింగ్` `-' 'స్థానికంగా ఏ షెల్ ఐచ్చికాలు అయినా ఫంక్షన్ తిరిగి వచ్చినప్పుడు వారి అసలు విలువలకు పునరుద్ధరించబడే ఫంక్షన్ లోపల సెట్ కమాండ్ ద్వారా మార్చబడతాయి. తిరిగి ఆదేశం యొక్క వాక్యనిర్మాణం తిరిగి exitstatus ఇది ప్రస్తుతం అమలు చేసే ఫంక్షన్ని తొలగిస్తుంది. రిటర్న్ ఒక అంతర్నిర్మిత ఆదేశం వలె అమలు చేయబడుతుంది. షెల్ పారామీటర్ల సమితిని నిర్వహిస్తుంది. ఒక పేరుతో సూచించబడిన పారామితి ఒక వేరియబుల్ అంటారు. ప్రారంభించినప్పుడు, షెల్ అన్ని ఎన్విరాన్మెంట్ వేరియబుల్స్ను షెల్ వేరియబుల్స్గా మారుస్తుంది. కొత్త వేరియబుల్స్ రూపం ఉపయోగించి అమర్చవచ్చు పేరు = విలువ యూజర్చే సెట్ చేసిన వేరియబుల్స్ తప్పనిసరిగా వర్ణమాలలు, సంఖ్యా శాస్త్రాలు మరియు అండర్ స్కోర్లను కలిగి ఉన్న ఒక పేరును కలిగి ఉండాలి - వీటిలో మొదటిది సంఖ్యాపరంగా ఉండకూడదు. క్రింద పేర్కొన్న విధంగా ఒక పరామితిని ఒక సంఖ్య లేదా ఒక ప్రత్యేక అక్షరంతో సూచించవచ్చు. ఒక స్థాన పరామితి ఒక సంఖ్య (n> 0) ద్వారా సూచించబడిన పరామితి. షెల్ షెల్ లిపి యొక్క పేరును అనుసరించే దాని ఆదేశ పంక్తి వాదాల యొక్క విలువలకు ఇవి మొదట సెట్ చేస్తుంది. సెట్ (1) builtin వాటిని అమర్చడానికి లేదా రీసెట్ చేయడానికి కూడా ఉపయోగించవచ్చు. ఒక ప్రత్యేక పరామితి కింది ప్రత్యేక అక్షరాలలో ఒకదానిచే సూచించబడిన పరామితి. పరామితి యొక్క విలువ దాని పాత్ర పక్కన జాబితా చేయబడుతుంది. * స్థాన పారామితులను విస్తరించింది, ఇది ఒకదాని నుండి ప్రారంభమవుతుంది. విస్తరణ డబుల్-కోటెడ్ స్ట్రింగ్లో సంభవిస్తే, ప్రతి పరామితి విలువతో ఒక ఫీల్డ్కు విస్తరిస్తుంది, ఇది మొదటి పాత్రఐఎఫ్ఎస్ వేరియబుల్, లేదా a @ స్థాన పారామితులను విస్తరించింది, ఇది ఒకదాని నుండి ప్రారంభమవుతుంది.డబుల్-కోట్స్లో విస్తరణ జరుగుతున్నప్పుడు, ప్రతి స్థాన పరామితి ప్రత్యేక వాదనగా విస్తరిస్తుంది. ఎటువంటి positional పారామితులు లేకపోతే, @ విస్తరణ @ సున్నా వాదనలను సృష్టిస్తుంది, @ డబుల్-కోట్ అయినప్పుడు కూడా. $ 1 'abc' 'మరియు $ 2' 'డెఫ్ జిహ్' 'అయితే QQ $ @ రెండు వాదాలకు విస్తరిస్తుంది. abc def ghi # స్థాన పారామితుల సంఖ్య విస్తరిస్తుంది. ? ఇటీవలి పైప్లైన్ యొక్క నిష్క్రమణ స్థితికి విస్తరించింది. - (అడ్డగీత.) ప్రస్తుత ఐచ్ఛిక జెండాలు (స్ట్రింగ్లో కలిపి ఒకే-అక్షరం ఎంపిక పేర్లు) విస్తరించడం, సెట్ అంతర్నిర్మిత కమాండ్ ద్వారా లేదా షెల్ ద్వారా పరిపూర్ణంగా చెప్పాలంటే. $ అమలు చేయబడిన షెల్ యొక్క ప్రాసెస్ ఐడికి విస్తరించింది. ఒక సబ్ షెల్ దాని పేరెంట్గా $ అదే విలువను కలిగి ఉంటుంది. ! ప్రస్తుత షెల్ నుండి అమలు చేయబడిన ఇటీవలి నేపథ్య కమాండ్ యొక్క ప్రాసెస్ ఐడికి విస్తరించింది. ఒక పైప్లైన్ కోసం, ప్రాసెస్ ఐడి పైప్లైన్లో చివరి ఆదేశం. 0 (జీరో.) షెల్ లేదా షెల్ లిపి పేరుకు విస్తరిస్తుంది. పద విస్తరణలు ఈ నిబంధన పదాలు నిర్వహిస్తున్న వివిధ విస్తరణలను వివరిస్తుంది. ప్రతి వివరణలో అన్ని విస్తరణలు చేయలేవు, తరువాత వివరించిన విధంగా. టిల్డే విస్తరణలు, పారామీటర్ విస్తరణలు, కమాండ్ ప్రత్యామ్నాయాలు, అంకగణిత విస్తరణలు మరియు ఒకే పదంలో సంభవించే కోట్ తొలగింపులు ఒకే రంగానికి విస్తరించాయి. ఇది ఒక పదం నుండి బహుళ రంగాలను సృష్టించగల ఫీల్డ్ ఫీల్డ్ విభజన లేదా పాత్ పేరు విస్తరణ. ఈ నియమానికి ఒక్క మినహాయింపు, పైన వివరించిన విధంగా, ద్వి-కోట్స్లో ప్రత్యేక పరామితి యొక్క విస్తరణ. పద విస్తరణ క్రమంలో: టిల్డ్ విస్తరణ, పారామీటర్ విస్తరణ, కమాండ్ ప్రతిక్షేపణ, అంకగణిత విస్తరణ (ఇవి ఒకే సమయంలో సంభవిస్తాయి). ఫీల్డ్ స్ప్లిట్టింగ్ అడుగు (1) ద్వారా సృష్టించబడిన క్షేత్రాల్లో అమలు చేయబడుతుందిఐఎఫ్ఎస్ వేరియబుల్ శూన్యం. Pathname విస్తరణ (సెట్ తప్ప -f ప్రభావం ఉంది). కోట్ రిమూవల్. పారామితి విస్తరణ, కమాండ్ ప్రత్యామ్నాయం, లేదా అంకగణిత విశ్లేషణను పరిచయం చేయడానికి $ పాత్ర ఉపయోగించబడుతుంది. Unquoted tilde పాత్ర (~) తో మొదలయ్యే పదం టిల్డె విస్తరణకు లోబడి ఉంటుంది. స్లాష్ (/) లేదా పదాల ముగింపు వరకు అన్ని అక్షరాలు ఒక వినియోగదారు పేరుగా పరిగణించబడతాయి మరియు యూజర్ యొక్క హోమ్ డైరెక్టరీతో భర్తీ చేయబడతాయి. వినియోగదారు పేరు తప్పిపోయినట్లయితే (~ / ఫోబోర్లో ఉన్నది) టిల్డే యొక్క విలువతో భర్తీ చేయబడుతుంది హోం వేరియబుల్ (ప్రస్తుత యూజర్ యొక్క హోమ్ డైరెక్టరీ). పారామితి విస్తరణ కోసం ఫార్మాట్ ఈ క్రింది విధంగా ఉంటుంది: $ {వ్యక్తీకరణ} ఎక్కడో ``} "'ఏదైనా'`} '' ఒక వెనక్కి తిప్పడంతో లేదా కోటెడ్ స్ట్రింగ్ లోపల మరియు ఎంబెడెడ్ అంకగణిత విస్తరణలో, కమాండ్ ప్రత్యామ్నాయాలను మరియు వేరియబుల్ విస్తరణలో ఉన్న అక్షరాలను గుర్తించడంలో సరిపోలే "`} '' పారామీటర్ విస్తరణ కోసం సరళమైన రూపం: $ {పారామితి} పరామితి యొక్క విలువ, ఏదైనా ఉంటే, ప్రత్యామ్నాయం. పరామితి పేరు లేదా గుర్తును జంట కలుపులలో జతపరచవచ్చు, ఇవి పద స్థాన పారామితులకు ఒకటి కంటే ఎక్కువ అంకెలతో లేదా పరామితి తరువాత పేరులో భాగంగా వర్ణించగలిగే అక్షరంతో ఐచ్ఛికంగా ఉంటాయి. డబుల్-కోట్స్ లోపల ఒక పారామీటర్ విస్తరణ జరుగుతుంది: విస్తరణ ఫలితాల్లో పథం విస్తరణ అమలు చేయబడదు. @ మినహా, విస్తరణ ఫలితాలపై ఫీల్డ్ విభజన జరుపబడదు. అదనంగా, కింది ఫార్మాట
ఉటంకిస్తూ
బ్యాక్స్లాష్
సింగిల్ కోట్స్
డబుల్ కోట్స్
రిజర్వ్డ్ వర్డ్స్
మారుపేర్ల
ఆదేశాలు
సాధారణ ఆదేశాలు
శోధన మరియు అమలు
మార్గం శోధన
కాంప్లెక్స్ ఆదేశాలు
పైపులైన్ల
నేపథ్య ఆదేశాలు -
జాబితాలు - సాధారణంగా మాట్లాడటం
చిన్న సర్క్యూట్ జాబితా ఆపరేటర్లు
ఫ్లో-కంట్రోల్ నిర్మాణాలు - అయితే, సందర్భంలో, అయితే
కలిసి సమూహాల ఆదేశాలు
వేరియబుల్స్ మరియు పారామితులు
Positional పారామితులు
ప్రత్యేక పారామితులు
టిల్డె విస్తరణ (వాడుకరి ఇంటి డైరెక్టరీని ప్రత్యామ్నాయం చేస్తుంది)
పారామీటర్ విస్తరణ













