యాష్ - Linux కమాండ్ - యునిక్స్ కమాండ్

NAME

sh - కమాండ్ ఇంటర్ప్రెటర్ ( షెల్ )

సంక్షిప్తముగా

sh [- / + aCefnuvxIimqsVEbc ] [- o longname ] -words [ target ... ]

వివరణ

సి వ్యవస్థకు ప్రామాణిక ఆదేశ వ్యాఖ్యాత. SH యొక్క ప్రస్తుత వెర్షన్ షీల్ కోసం POSIX 1003.2 మరియు 1003.2a స్పెసిఫికేషన్లకు అనుగుణంగా మార్చబడుతున్న ప్రక్రియలో ఉంది. ఈ సంస్కరణలో కొన్ని లక్షణాలలో కార్న్ షెల్ కు సమానంగా కనిపిస్తాయి, కానీ ఇది కార్న్ షెల్ క్లోన్ కాదు (ksh (1) చూడండి). POSIX మరియు కొన్ని బెర్క్లీ ఎక్స్టెన్షన్లచే నియమించబడిన లక్షణాలు మాత్రమే ఈ షెల్ లోకి విలీనం చేయబడ్డాయి. POSIX అనుగుణంగా 4.4 BSD విడుదలతో మేము ఆశిస్తాం. ఈ మాన్ పుట ట్యుటోరియల్ లేదా షెల్ యొక్క పూర్తి స్పెసిఫికేషన్ కాదని ఉద్దేశించబడలేదు.

అవలోకనం

షెల్ ఒక ఫైల్ లేదా టెర్మినల్ నుండి పంక్తులను చదివే ఒక కమాండ్ , వాటిని వివరించేది మరియు సాధారణంగా ఇతర ఆదేశాలను అమలు చేస్తుంది. వినియోగదారుడు వ్యవస్థలోకి లాగిన్ అయినప్పుడు నడుస్తున్న కార్యక్రమం ఇది (ఒక వినియోగదారుని chsh (1) ఆదేశంతో వేరే షెల్ ఎంచుకోవచ్చు). షెల్ ప్రవాహ నియంత్రణ నియంత్రణను కలిగి ఉన్న ఒక భాషను అమలు చేస్తుంది, చరిత్రలో మరియు లైన్ ఎడిటింగ్ సామర్థ్యాలతో సహా, డేటా నిల్వకు అదనంగా వివిధ లక్షణాలను అందించే స్థూల సదుపాయం. ఇది ఇంటరాక్టివ్ ఉపయోగం కోసం అనేక లక్షణాలను కలిగి ఉంటుంది మరియు పరస్పర మరియు ఇంటరాక్టివ్ ఉపయోగం (షెల్ స్క్రిప్ట్లు) రెండింటికీ అన్వయ భాష అనేది సర్వసాధారణంగా ఉంటుంది. అంటే, ఆదేశాలను నడుస్తున్న షెల్కు నేరుగా టైప్ చేయవచ్చు లేదా ఫైల్ను ఉంచవచ్చు మరియు షెల్ ద్వారా నేరుగా ఫైల్ను అమలు చేయవచ్చు.

ఆవాహన

ఏ అర్దములు లేవు మరియు షెల్ యొక్క ప్రామాణిక ఇన్పుట్ ఒక టెర్మినల్కు అనుసంధానించబడి ఉంటే (లేదా - i జెండా సెట్ చేయబడితే), మరియు - c ఐచ్ఛికం లేదు, షెల్ ఒక ఇంటరాక్టివ్ షెల్గా పరిగణించబడుతుంది. ఇంటరాక్టివ్ షెల్ సాధారణంగా ప్రతి ఆదేశానికి ముందు ప్రాంప్ట్ చేస్తుంది మరియు ప్రోగ్రామింగ్ మరియు కమాండ్ లోపాలను భిన్నంగా నిర్వహిస్తుంది (క్రింద వివరించిన విధంగా). మొదట ప్రారంభమైనప్పుడు, షెల్ వాదన 0 ని పరిశీలిస్తుంది మరియు అది డాష్తో ప్రారంభమైతే '-' షెల్ కూడా ఒక లాగిన్ షెల్గా పరిగణించబడుతుంది. వాడుకరి మొట్టమొదటి లాగిన్ అయినప్పుడు ఇది సాధారణంగా స్వయంచాలకంగా జరుగుతుంది. లాగిన్ షెల్ మొదట ఫైళ్లు / etc / ప్రొఫైల్ నుండి ఆదేశాలను చదువుతుంది మరియు అవి ఉన్నట్లయితే. ఎన్విరాన్మెంట్ వేరియబుల్ ENV షెల్కు ప్రవేశానికి సెట్ చేయబడిందో లేదా లాగిన్ షెల్ యొక్క. లో సెట్ చేయబడితే, షెల్ తదుపరి ENV పేరుతో ఉన్న ఫైల్ నుండి ఆదేశాలను చదువుతుంది, అందువల్ల ఒక యూజర్ ఆదేశాలను మాత్రమే అమలు చేయాలి ENV ఫైల్ లోపల ప్రతి షెల్ కోసం అమలు చేయబడ్డ . కొన్ని ఫైల్లకు ENV వేరియబుల్ సెట్ చేసేందుకు, మీ హోమ్ డైరెక్టరీ యొక్క మీ

ENV = $ HOME / .shinit; ENV ను ఎగుమతి చేయండి

"షినిట్" కొరకు మీరు ప్రత్యామ్నాయంగా ఉంచారు. షెల్ స్క్రిప్ట్లు మరియు ఇంటరాక్టివ్ కాని షెల్లు సహా షెల్ యొక్క ప్రతి ప్రవేశానికి ENV ఫైల్ చదివినందున, ENV ఫైల్లోని ఆదేశాలను నియంత్రించడానికి ఇంటరాక్టివ్ ఇన్వొకేషన్లకు కింది పారాడిగం ఉపయోగపడుతుంది. క్రింద "కేస్" మరియు " ఎస్సాక్ " లోపల ఉన్న ఆదేశాల ఆదేశాలను (ఈ ఆదేశాలు తర్వాత వర్ణిస్తాయి):

కేసు $ - * లో * i)

ఇంటరాక్టివ్ ఉపయోగం కోసం # ఆదేశాలను మాత్రమే

...

esac

ఆప్షన్లతో పాటు కమాండ్ లైన్ వాదనలు తెలుపబడితే, షెల్ ఆదేశాలను (షెల్ లిపి) చదివే ఒక ఫైల్ పేరుగా మొదటి వాదనను ఉపయోగిస్తుంది మరియు మిగిలిన వాదనలు షెల్ యొక్క స్థితి పారామితులుగా ($ 1 , $ 2, మొదలైనవి). లేకపోతే, షెల్ దాని ప్రామాణిక ఇన్పుట్ నుండి ఆదేశాలను చదువుతుంది.

ఆర్గ్యుమెంట్ జాబితా ప్రోసెసింగ్

ఒకే అక్షరం ఐచ్ఛికాలు అన్నిటికీ - ఎంపికకు వాదనగా వాడబడే సంబంధిత పేరును కలిగి ఉంటాయి. సెట్- పేరు క్రింద వివరణలో ఒకే అక్షర ఐచ్ఛికం పక్కన అందించబడుతుంది. ఒక డాష్ పేర్కొనడం `` - '' ప్లస్ '`+' 'ను ఉపయోగించినప్పుడు ఎంపికను ఆపివేస్తుంది. కింది ఐచ్ఛికాలు కమాండ్ లైన్ నుండి లేదా సెట్ (1) బిల్డ్ (తరువాత వివరించబడినవి) తో అమర్చవచ్చు.

-అలెక్స్పోర్ట్

కేటాయించిన అన్ని వేరియబుల్స్ ఎగుమతి. (4.4alpha కోసం అన్ఇంప్లిమెంటెడ్)

-c

కమాండ్ లైన్ నుండి ఆదేశాలను చదవండి. ప్రామాణిక ఇన్పుట్ నుండి ఏ ఆదేశాలు చదవబడవు.

-C noclobber

ఇప్పటికే ఉన్న ఫైల్లను ``> '' (4.4alpha కోసం అన్ఇంప్లిమెంటెడ్) తో భర్తీ చేయవద్దు.

-ఈ తప్పు

ఇంటరాక్టివ్ కాకపోతే, ఏదైనా ప్రయత్నించని ఆదేశం విఫలమైతే వెంటనే నిష్క్రమించండి. ఒక కమాండ్ యొక్క నిష్క్రమణ స్థితి స్పష్టంగా పరీక్షిస్తున్నట్లుగా పరిగణించబడుతుంది, ఆ కమాండ్ను `` && '' లేదా '`||' 'ఆపరేటర్ యొక్క ఎడమ చేతి ఆరంభంలో ఉన్నపుడు లేదా ఆపై ఉన్నప్పుడల్లా నియంత్రించటానికి ఉపయోగించబడుతుంది.

-f noglob

మార్గమధ్య విస్తరణను నిలిపివేయి.

-n noexec

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

-u నామకరణం

సెట్ చేయని ఒక వేరియబుల్ను విస్తరించడానికి ప్రయత్నిస్తున్నప్పుడు ప్రామాణిక సందేశానికి ఒక సందేశాన్ని వ్రాయండి మరియు షెల్ ఇంటరాక్టివ్ కాకుంటే, వెంటనే నిష్క్రమించండి. (4.4alpha కోసం అన్ఇంప్లిమెంటెడ్)

-v verbose

షెల్ దాని ఇన్పుట్ను ప్రామాణిక లోపాన్ని చదవటాన్ని వ్రాస్తుంది. డీబగ్గింగ్కు ఉపయోగకరమైనది.

-x xtrace

ప్రతి కమాండ్ను ప్రామాణిక లోపంకు (దీనిని అమలు చేయడానికి ముందే `+ 'వ్రాయండి.

-Q నిశ్చిత ప్రొఫైల్

- 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 eli Ta fi Ta అయితే Ta కేసు

Ta కోసం Ta తరువాత Ta {Ta}

టా టా టా తా తక్ ఉంటే టాక్

వారి అర్ధం తర్వాత చర్చించబడింది.

మారుపేర్ల

అలియాస్ అలియాస్ (1) అంతర్నిర్మిత ఆదేశం ఉపయోగించి సెట్ చేయబడిన పేరు మరియు సంబంధిత విలువ. రిజర్వు చేయబడిన పదం సంభవించినప్పుడు (పైన చూడండి), మరియు రిజర్వేషన్ పదాల కోసం తనిఖీ చేసిన తర్వాత, షెల్ అది ఒక అలియాస్తో సరిపోలుతుందో లేదో చూడటానికి తనిఖీ చేస్తుంది. అది ఉంటే, అది దాని విలువతో ఇన్పుట్ స్ట్రీమ్లో దాన్ని భర్తీ చేస్తుంది. ఉదాహరణకు, '`ls -F' 'విలువతో` `lf' 'అనే మారుపేరు ఉన్నట్లయితే,

lf foobar <తిరిగి>

అవుతుంది

ls -F foobar <తిరిగి>

విరుద్ధంగా ఫంక్షన్లను ఎలా సృష్టించాలో నేర్చుకోకుండా కమాండ్ల కోసం షార్ట్హ్యాండ్లను సృష్టించడానికి సరళమైన వినియోగదారులకు మారుపేర్లు ఒక అనుకూలమైన మార్గాన్ని అందిస్తాయి. వారు lexically అస్పష్ట కోడ్ సృష్టించడానికి ఉపయోగించవచ్చు. ఈ ఉపయోగం నిరుత్సాహపడింది.

ఆదేశాలు

ఈ షెల్ ఒక భాష ప్రకారం చదువుతున్న పదాలను అర్థం చేసుకుంటుంది, ఈ వివరణ యొక్క మాన్యువల్ వెలుపలి భాగం ( POSIX 1003.2 పత్రంలో BNF ని చూడండి). అయితే, ఒక లైన్ చదవబడుతుంది మరియు లైన్ యొక్క మొదటి పదం (లేదా కంట్రోల్ ఆపరేటర్ తర్వాత) రిజర్వు చేయబడిన పదం కాకుంటే, షెల్ ఒక సాధారణ ఆదేశంను గుర్తించింది. లేకపోతే, ఒక సంక్లిష్ట ఆదేశం లేదా కొన్ని ఇతర ప్రత్యేక నిర్మాణం గుర్తించబడి ఉండవచ్చు.

సాధారణ ఆదేశాలు

ఒక సాధారణ ఆదేశం గుర్తించబడినట్లయితే, షెల్ కింది చర్యలను అమలు చేస్తుంది:

  1. రూపం `` పేరు = విలువ '' యొక్క ప్రధాన పదాలను తొలగించారు మరియు సాధారణ ఆదేశం యొక్క పర్యావరణానికి కేటాయించారు. దారి మళ్లింపు ఆపరేటర్లు మరియు వారి వాదనలు (క్రింద వివరించిన విధంగా) తీసివేసి ప్రాసెసింగ్ కోసం సేవ్ చేయబడతాయి.
  2. `విస్తరణలు 'అని పిలవబడే విభాగంలో వివరించిన విధంగా మిగిలిన పదాలు విస్తరించబడ్డాయి మరియు మొదటి మిగిలిన పదం కమాండ్ పేరుగా పరిగణించబడుతుంది మరియు కమాండ్ ఉన్నది. మిగిలిన పదాలు కమాండ్ యొక్క వాదనలుగా పరిగణించబడతాయి. కమాండ్ పేరు ఏదీ లేనట్లయితే, అంశం 1 లో గుర్తించిన "పేరు = విలువ" వేరియబుల్ కేటాయింపులు ప్రస్తుత షెల్పై ప్రభావం చూపుతాయి.
  3. తదుపరి విభాగంలో వివరించిన విధంగా దారి మళ్లింపులు నిర్వహిస్తారు.

మళ్లింపులు

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

[n] redir-op ఫైల్

అక్కడ redir-op గతంలో పేర్కొన్న మళ్లింపు ఆపరేటర్లలో ఒకటి. సాధ్యమయ్యే మళ్లింపుల జాబితా తరువాత ఉంది. Bq n అనేది ఒక ఐచ్ఛిక సంఖ్య, `3 'లో (ఒక ఫైల్ వర్ణనను సూచిస్తున్న` Bq 3' కాదు.

[n]> ఫైల్

ప్రామాణిక అవుట్పుట్ (లేదా n) ను ఫైల్ చేయడానికి దారి.

[n]> | ఫైలు

అదే, కానీ సి - ఎంపికను భర్తీ.

[n] >> ఫైల్

ఫైల్ను ప్రామాణిక అవుట్పుట్ (లేదా n) చేర్చండి.

[n]

ఫైల్ నుండి ప్రామాణిక ఇన్పుట్ (లేదా n) ను దారి మళ్లించండి.

[n1] <& n2

నకిలీ ప్రామాణిక ఇన్పుట్ (లేదా n1) ఫైల్ వర్ణన n2 నుండి.

[n] <& -

ప్రామాణిక ఇన్పుట్ను మూసివేయండి (లేదా n).

[n1]> & n2

నకిలీ నుండి ప్రామాణిక అవుట్పుట్ (లేదా n1) నకిలీ.

[n]> -

ప్రామాణిక అవుట్పుట్ను మూసివేయండి (లేదా n).

[n] <> ఫైల్

ప్రామాణిక ఇన్పుట్ (లేదా n) లో చదవడం మరియు వ్రాయడం కోసం ఫైల్ను తెరవండి.

కింది మళ్లింపును తరచుగా "ఇక్కడ-పత్రం" అని పిలుస్తారు

[n] << డీలిమిటర్

ఇక్కడ-doc టెక్స్ట్ ...

డీలిమిటర్

డీలిమిటర్ వరకు వరుస పంక్తుల మీద ఉన్న అన్ని వచనాలు దూరంగా ఉంచబడతాయి మరియు స్టాండర్డ్ ఇన్పుట్ మీద ఆదేశంకు లేదా అది పేర్కొనబడినట్లయితే ఫైలు వర్ణనలో అందుబాటులో ఉంటుంది. ప్రారంభ పంక్తిలో పేర్కొన్న విధంగా డీలిమిటర్ ఉల్లేఖించినట్లయితే, ఇక్కడ-డిఓసి-టెక్స్ట్ వాచ్యంగా పరిగణిస్తే, లేకపోతే టెక్స్ట్ పారామితి విస్తరణ, కమాండ్ ప్రత్యామ్నాయం మరియు అంకగణిత విస్తరణ ("విస్తరణల" విభాగంలో వివరించినట్లుగా) 'ఆపరేటర్ ఉంటే' `<< - '' బదులుగా` `<< '' తరువాత ఇక్కడ-పత్రం-పాఠంలో ప్రముఖ ట్యాబ్లు తొలగించబడ్డాయి.

శోధన మరియు అమలు

మూడు రకాలైన ఆదేశాలు ఉన్నాయి: షెల్ విధులు, అంతర్నిర్మిత ఆదేశాలు, మరియు సాధారణ కార్యక్రమాలు - ఆ ఆ క్రమంలో ఆదేశం (పేరు ద్వారా) శోధించబడుతుంది. వారు ప్రతి వేరే విధంగా అమలు చేయబడతారు.

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

షెల్ అంతర్నిర్మితలు కొత్త ప్రక్రియను సృష్టించకుండా, షెల్కు అంతర్గతంగా అమలు చేయబడతాయి.

లేకపోతే, కమాండ్ పేరు ఒక ఫంక్షన్ లేదా అంతర్నిర్మిత అనుసంధానించబడి లేకపోతే, కమాండ్ ఫైల్ వ్యవస్థలో సాధారణ ప్రోగ్రామ్గా (తరువాతి విభాగంలో వివరించిన విధంగా) శోధించబడుతుంది. ఒక సాధారణ ప్రోగ్రామ్ అమలు చేయబడినప్పుడు, షెల్ కార్యక్రమం అమలు చేస్తుంది, వాదనలు మరియు పర్యావరణాన్ని కార్యక్రమంలోకి పంపుతుంది. కార్యక్రమం ఒక సాధారణ ఎక్జిక్యూటబుల్ ఫైల్ కాదు (అంటే, ఇది "మాజిక్ సంఖ్య" తో ప్రారంభించకపోతే, దీని ASCII ప్రాతినిధ్యం "#!", కాబట్టి (2) ఎర్ ENOEXEC ను తిరిగి పంపుతుంది) షెల్ ఈ కార్యక్రమంలో subshell. బాల షెల్ ఈ సందర్భంలోనే పునఃప్రారంభించబడుతుంది, తద్వారా ఈ ప్రభావం షెల్ లో ఉన్న హ్యాష్డ్ ఆదేశాల స్థానాన్ని తప్పించి, ఆ-హాక్ షెల్ స్క్రిప్ట్ను నిర్వహించడానికి ఒక కొత్త షెల్ ప్రయోగించినట్లుగా ఉంటుంది. బాల.

ఈ పత్రం యొక్క ముందలి సంస్కరణలు మరియు సోర్స్ కోడ్ కూడా తప్పుదారి పట్టించేవి మరియు ఒక షెల్ స్క్రిప్టును ఒక మాగ్ని సంఖ్య లేకుండా "షెల్ విధానం" గా సూచిస్తాయి.

మార్గం శోధన

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

  1. స్లాష్ ఉన్న కమాండ్ పేర్లు ఏ శోధనలు లేకుండానే అమలు చేయబడతాయి.
  2. షెల్ కమాండ్కు బదులుగా ప్రతి ప్రవేశం PATH లో శోధిస్తుంది. PATH వేరియబుల్ యొక్క విలువ కోలన్లచే వేరు చేయబడిన ఎంట్రీల వరుసగా ఉండాలి. ప్రతి ఎంట్రీ డైరెక్టరీ పేరును కలిగి ఉంటుంది. ప్రస్తుత డైరెక్టరీని ఒక ఖాళీ డైరెక్టరీ పేరుతో లేదా ఒక్క కాలంగా స్పష్టంగా సూచించవచ్చు.

కమాండ్ నిష్క్రమించు స్థితి

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

కాంప్లెక్స్ ఆదేశాలు

సంక్లిష్ట ఆదేశాలను నియంత్రణా ఆపరేటర్లు లేదా రిజర్వేషన్ పదాలతో సాధారణ ఆదేశాల కలయికలు, కలిసి ఒక పెద్ద సంక్లిష్ట ఆదేశం సృష్టించడం. సాధారణంగా, కమాండ్ కింది వాటిలో ఒకటి:

  • సాధారణ ఆదేశం
  • పైప్లైన్
  • జాబితా లేదా మిశ్రమ జాబితా
  • సమ్మేళనం కమాండ్
  • ఫంక్షన్ నిర్వచనం

లేకపోతే పేర్కొనకపోతే, కమాండ్ యొక్క నిష్క్రమణ స్థితిని కమాండ్చే అమలు చేయబడిన చివరి సాధారణ ఆదేశం.

పైపులైన్ల

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

పైప్లైన్ కోసం ఫార్మాట్:

[!] command1 [| కమాండ్ 2 ...]

Command1 యొక్క ప్రామాణిక అవుట్పుట్ command2 యొక్క ప్రామాణిక ఇన్పుట్కు అనుసంధానించబడింది. ప్రామాణిక ఇన్పుట్, స్టాండర్డ్ అవుట్పుట్ లేదా ఒక ఆదేశం యొక్క రెండింటిని ఆదేశాలలో భాగమైన మళ్లింపు ఆపరేటర్ల ద్వారా పేర్కొన్న ఏ మళ్లింపుకు ముందు పైప్లైన్చే కేటాయించబడుతుంది.

పైప్లైన్ నేపథ్యంలో లేనట్లయితే (తరువాత చర్చించబడింది), షెల్ అన్ని ఆదేశాలను పూర్తి చేయడానికి వేచి ఉంటుంది.

రిజర్వ్ చేసిన పదం! పైప్లైన్కు ముందుగా లేదు, నిష్క్రమణ స్థితిని పైప్లైన్లో పేర్కొన్న చివరి ఆదేశం యొక్క నిష్క్రమణ స్థితి. లేకపోతే, నిష్క్రమణ స్థితిని చివరి ఆదేశం యొక్క నిష్క్రమణ స్థితి యొక్క తార్కిక NOT కాదు. అంటే, చివరి ఆదేశం సున్నా తిరిగి ఉంటే, నిష్క్రమణ స్థితి 1; గత కమాండ్ సున్నా కంటే ఎక్కువ తిరిగి ఉంటే, నిష్క్రమణ స్థితి సున్నా అవుతుంది.

ఎందుకంటే ప్రామాణిక ఇన్పుట్ లేదా ప్రామాణిక అవుట్పుట్ యొక్క పైప్లైన్ కేటాయింపు లేదా రెండింటి మళ్లింపుకు ముందు జరుగుతుంది, ఇది మళ్లింపు ద్వారా సవరించబడుతుంది. ఉదాహరణకి:

$ command1 2> & 1 | command2

command1 యొక్క ప్రామాణిక ఇన్పుట్కు ప్రామాణిక 1 అవుట్పుట్ మరియు ప్రామాణిక దోషం రెండింటినీ పంపుతుంది.

A; లేదా <న్యూలైన్> టెర్మినేటర్ వరుసక్రమంలో అమలు చేయబోయే ముందు మరియు OR- జాబితా (తరువాతి వివరించిన) కారణమవుతుంది; ఒక & ముందు మరియు OR- జాబితా యొక్క అసమకాలిక అమలు కారణమవుతుంది.

కొన్ని ఇతర షెల్లు కాకుండా, పైప్లైన్లో ప్రతి ప్రక్రియను ప్రేరేపించే షెల్ యొక్క బిడ్డ (ఇది షెల్ అంతర్నిర్మితం కాకపోతే, ప్రస్తుత షెల్లో ఇది అమలు అవుతుంది - కానీ పర్యావరణంపై దాని ప్రభావాన్ని తుడిచిపెట్టింది).

నేపథ్య ఆదేశాలు -

నియంత్రణ కమీషనర్ ఆంపర్సాండెంట్ (&) చేత ఒక ఆదేశం రద్దు చేయబడితే, షెల్ ఆదేశాన్ని ఆదేశాత్మకంగా నిర్వహిస్తుంది - అనగా, తదుపరి కమాండ్ను అమలు చేయడానికి ముందు ఆదేశానికి షెల్ వేచి ఉండదు.

నేపథ్యంలో ఒక ఆదేశం అమలు కోసం ఫార్మాట్:

command1 & [command2 & ...]

షెల్ ఇంటరాక్టివ్ కానట్లయితే, ఒక అసమకాలిక కమాండ్ యొక్క ప్రామాణిక ఇన్పుట్ / dev / null కు అమర్చబడుతుంది

జాబితాలు - సాధారణంగా మాట్లాడటం

జాబితా అనేది క్రొత్త లైన్లు, సెమీకోలన్లు లేదా ఆంపర్సాండ్స్లతో వేరు చేయబడిన సున్నా లేదా మరిన్ని ఆదేశాల క్రమం, మరియు ఈ మూడు అక్షరాలలో ఒకటి ఐచ్ఛికంగా రద్దు చేయబడుతుంది. జాబితాలోని ఆదేశాలను వారు వ్రాసిన క్రమంలో నిర్వహిస్తారు. ఆంపర్సండ్డు ఆదేశాన్ని అనుసరిస్తే, షెల్ కమాండ్ను ప్రారంభించి వెంటనే తదుపరి ఆదేశానికి కొనసాగించండి; లేదంటే కిందికి వెళ్ళడానికి ముందు కమాండ్ కోసం వేచివుంటుంది.

చిన్న సర్క్యూట్ జాబితా ఆపరేటర్లు

`` && '' మరియు '' || '' మరియు- OR జాబితా నిర్వాహకులు. `` && '' మొదటి కమాండ్ను అమలు చేస్తుంది, ఆపై రెండవ ఆదేశం అమలు అవుతుంది iff మొదటి ఆదేశం యొక్క నిష్క్రమణ స్థితి సున్నా. `` || '' ఇదే, కానీ మొదటి ఆదేశం యొక్క నిష్క్రమణ స్థితి nonfero iff రెండవ ఆదేశం అమలు అవుతుంది. `` && '' మరియు '' || '' రెండూ ఒకే ప్రాధాన్యత కలిగివున్నాయి.

ఫ్లో-కంట్రోల్ నిర్మాణాలు - అయితే, సందర్భంలో, అయితే

ఆదేశం యొక్క వాక్యనిర్మాణం

జాబితా ఉంటే
అప్పుడు జాబితా చేయండి
[elif జాబితా
అప్పుడు జాబితా] ...
[else జాబితా]
ఫిక్షన్

అయితే ఆదేశం యొక్క వాక్యనిర్మాణం

జాబితాలో ఉన్నప్పుడు
జాబితా చేయండి
పూర్తి

మొదటి జాబితా యొక్క నిష్క్రమణ స్థితి సున్నా అయితే రెండు జాబితాలు పదేపదే అమలు చేయబడతాయి. కమాండ్ సమానంగా ఉంటుంది, అయితే ఇది వరకు, పదం యొక్క పదాల నిష్క్రమణ స్థితిని సున్నా వరకు పునరావృతం చేయడానికి కారణమవుతుంది.

కమాండ్ యొక్క వాక్యనిర్మాణం

పదం వేరియబుల్ కోసం ...
జాబితా చేయండి
పూర్తి

పదాలు విస్తరించబడ్డాయి, ఆపై ప్రతి పనికి వేరియబుల్ సమితికి బదులుగా జాబితా పదేపదే అమలు అవుతుంది. చేయండి మరియు పూర్తి చెయ్యవచ్చు `` మరియు `` `

విరామ సింటాక్స్ మరియు కొనసాగించు ఆదేశం

బ్రేక్ [నంబర్]
కొనసాగండి [నంబర్]

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

కేస్ ఆదేశం సింటాక్స్

కేస్ వర్డ్ ఇన్
నమూనా) జాబితా;
...
esac

ఈ నమూనా వాస్తవానికి ఒకటి లేదా అంతకంటే ఎక్కువ నమూనాలను కలిగి ఉంటుంది (తరువాత వివరించిన షెల్ పద్ధతులు చూడండి), `` 'అక్షరాలు ద్వారా వేరు చేయబడతాయి.

కలిసి సమూహాల ఆదేశాలు

కమాండ్లు వ్రాయడం ద్వారా సమూహం చేయబడవచ్చు

(జాబితా)

లేదా

{జాబితా;

వీటిలో మొదటిది ఉపస్థాయిలో ఆదేశాలను అమలు చేస్తుంది. ఒక (జాబితా) లోకి సమూహం చేయబడిన బిల్లీన్ ఆదేశాలు ప్రస్తుత షెల్ను ప్రభావితం చేయదు. రెండవ రూపం ఇంకొక షెల్ కొంచెం ఎక్కువ సమర్థవంతంగా ఉంటుంది. ఈ విధంగా కలిసి గుంపుల ఆదేశాలను మీరు ఒక ప్రోగ్రాం అయినప్పటికీ వారి అవుట్పుట్ను మళ్ళించటానికి అనుమతిస్తుంది:

{printf హలో; printf ప్రపంచ \ n ";}> గ్రీటింగ్

విధులు

ఒక ఫంక్షన్ నిర్వచన వాక్యనిర్మాణం

పేరు () ఆదేశం

ఒక ఫంక్షన్ నిర్వచనం ఒక ఎక్జిక్యూటబుల్ స్టేట్మెంట్; ఉరితీయబడినప్పుడు అది పేరున్న ఫంక్షన్ ను ఇన్స్టాల్ చేసి, సున్నా యొక్క నిష్క్రమణ స్థితిని తిరిగి పంపుతుంది. ఆదేశం సాధారణంగా '' '' మరియు '' '}' 'మధ్య మధ్య వున్న జాబితా

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

స్థానిక [వేరియబుల్ | -] ...

అంతర్నిర్మిత అంతర్నిర్మిత ఆదేశం వలె అమలు చేయబడుతుంది.

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

స్థానికంగా తయారు చేయగల ఏకైక ప్రత్యేక పరామితి `` - `'మేకింగ్` `-' 'స్థానికంగా ఏ షెల్ ఐచ్చికాలు అయినా ఫంక్షన్ తిరిగి వచ్చినప్పుడు వారి అసలు విలువలకు పునరుద్ధరించబడే ఫంక్షన్ లోపల సెట్ కమాండ్ ద్వారా మార్చబడతాయి.

తిరిగి ఆదేశం యొక్క వాక్యనిర్మాణం

తిరిగి [exitstatus

ఇది ప్రస్తుతం అమలు చేసే ఫంక్షన్ని తొలగిస్తుంది. రిటర్న్ ఒక అంతర్నిర్మిత ఆదేశం వలె అమలు చేయబడుతుంది.

వేరియబుల్స్ మరియు పారామితులు

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

పేరు = విలువ

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

Positional పారామితులు

ఒక స్థాన పరామితి ఒక సంఖ్య (n> 0) ద్వారా సూచించబడిన పరామితి. షెల్ షెల్ లిపి యొక్క పేరును అనుసరించే దాని ఆదేశ పంక్తి వాదాల యొక్క విలువలకు ఇవి మొదట సెట్ చేస్తుంది. సెట్ (1) builtin వాటిని అమర్చడానికి లేదా రీసెట్ చేయడానికి కూడా ఉపయోగించవచ్చు.

ప్రత్యేక పారామితులు

ఒక ప్రత్యేక పరామితి కింది ప్రత్యేక అక్షరాలలో ఒకదానిచే సూచించబడిన పరామితి. పరామితి యొక్క విలువ దాని పాత్ర పక్కన జాబితా చేయబడుతుంది.

*

స్థాన పారామితులను విస్తరించింది, ఇది ఒకదాని నుండి ప్రారంభమవుతుంది. డబల్-కోటెడ్ స్ట్రింగ్లో విస్తరణ జరుగుతున్నప్పుడు, ఐఎఫ్ఎస్ వేరియబుల్ యొక్క మొదటి అక్షరం వేరుచేసిన ప్రతి పరామితి విలువతో ఒక ఫీల్డ్కు విస్తరిస్తుంది లేదా IFS సెట్ చేయకపోతే ఒక ద్వారా.

@

స్థాన పారామితులను విస్తరించింది, ఇది ఒకదాని నుండి ప్రారంభమవుతుంది. డబుల్-కోట్స్లో విస్తరణ జరుగుతున్నప్పుడు, ప్రతి స్థాన పరామితి ప్రత్యేక వాదనగా విస్తరిస్తుంది. ఎటువంటి positional పారామితులు లేకపోతే, @ విస్తరణ @ సున్నా వాదనలను సృష్టిస్తుంది, @ డబుల్-కోట్ అయినప్పుడు కూడా. $ 1 'abc' 'మరియు $ 2' 'డెఫ్ జిహ్' 'అయితే QQ $ @ రెండు వాదాలకు విస్తరిస్తుంది.

abc def ghi

#

స్థాన పారామితుల సంఖ్య విస్తరిస్తుంది.

?

ఇటీవలి పైప్లైన్ యొక్క నిష్క్రమణ స్థితికి విస్తరించింది.

- (అడ్డగీత.)

ప్రస్తుత ఐచ్ఛిక జెండాలు (స్ట్రింగ్లో కలిపి ఒకే-అక్షరం ఎంపిక పేర్లు) విస్తరించడం, సెట్ అంతర్నిర్మిత కమాండ్ ద్వారా లేదా షెల్ ద్వారా పరిపూర్ణంగా చెప్పాలంటే.

$

అమలు చేయబడిన షెల్ యొక్క ప్రాసెస్ ఐడికి విస్తరించింది. ఒక సబ్ షెల్ దాని పేరెంట్గా $ అదే విలువను కలిగి ఉంటుంది.

!

ప్రస్తుత షెల్ నుండి అమలు చేయబడిన ఇటీవలి నేపథ్య కమాండ్ యొక్క ప్రాసెస్ ఐడికి విస్తరించింది. ఒక పైప్లైన్ కోసం, ప్రాసెస్ ఐడి పైప్లైన్లో చివరి ఆదేశం.

0 (జీరో.)

షెల్ లేదా షెల్ లిపి పేరుకు విస్తరిస్తుంది.

పద విస్తరణలు

ఈ నిబంధన పదాలు నిర్వహిస్తున్న వివిధ విస్తరణలను వివరిస్తుంది. ప్రతి వివరణలో అన్ని విస్తరణలు చేయలేవు, తరువాత వివరించిన విధంగా.

టిల్డే విస్తరణలు, పారామీటర్ విస్తరణలు, కమాండ్ ప్రత్యామ్నాయాలు, అంకగణిత విస్తరణలు మరియు ఒకే పదంలో సంభవించే కోట్ తొలగింపులు ఒకే రంగానికి విస్తరించాయి. ఇది ఒక పదం నుండి బహుళ రంగాలను సృష్టించగల ఫీల్డ్ ఫీల్డ్ విభజన లేదా పాత్ పేరు విస్తరణ. ఈ నియమానికి ఒక్క మినహాయింపు, పైన వివరించిన విధంగా, ద్వి-కోట్స్లో ప్రత్యేక పరామితి యొక్క విస్తరణ.

పద విస్తరణ క్రమంలో:

  1. టిల్డ్ విస్తరణ, పారామీటర్ విస్తరణ, కమాండ్ ప్రతిక్షేపణ, అంకగణిత విస్తరణ (ఇవి ఒకే సమయంలో సంభవిస్తాయి).
  2. IFS వేరియబుల్ శూన్యం కాకపోతే, దశలవారీగా ఉత్పత్తి చేయబడిన ఫీల్డ్లలో ఫీల్డ్ విభజన జరుగుతుంది.
  3. Pathname విస్తరణ (సెట్ - f అమల్లో తప్ప).
  4. కోట్ రిమూవల్.

పారామితి విస్తరణ, కమాండ్ ప్రత్యామ్నాయం, లేదా అంకగణిత విశ్లేషణను పరిచయం చేయడానికి $ పాత్ర ఉపయోగించబడుతుంది.

టిల్డె విస్తరణ (వినియోగదారు యొక్క ఇంటి డైరెక్టరీని భర్తీ చేస్తుంది)

Unquoted tilde పాత్ర (~) తో మొదలయ్యే పదం టిల్డె విస్తరణకు లోబడి ఉంటుంది. స్లాష్ (/) లేదా పదాల ముగింపు వరకు అన్ని అక్షరాలు ఒక వినియోగదారు పేరుగా పరిగణించబడతాయి మరియు యూజర్ యొక్క హోమ్ డైరెక్టరీతో భర్తీ చేయబడతాయి. వాడుకరిపేరు తప్పిపోతే (~ / ఫోబోర్ లో) టిల్డె హ్యూమ్ వేరియబుల్ యొక్క విలువతో భర్తీ చేయబడుతుంది (ప్రస్తుత యూజర్ యొక్క హోమ్ డైరెక్టరీ).

పారామీటర్ విస్తరణ

పారామితి విస్తరణ కోసం ఫార్మాట్ ఈ క్రింది విధంగా ఉంటుంది:

ఎక్కడో ``} "'ఏదైనా'`} '' ఒక వెనక్కి తిప్పడంతో లేదా కోటెడ్ స్ట్రింగ్ లోపల మరియు ఎంబెడెడ్ అంకగణిత విస్తరణలో, కమాండ్ ప్రత్యామ్నాయాలను మరియు వేరియబుల్ విస్తరణలో ఉన్న అక్షరాలను గుర్తించడంలో సరిపోలే "`} ''

పారామీటర్ విస్తరణ కోసం సరళమైన రూపం:

పరామితి యొక్క విలువ, ఏదైనా ఉంటే, ప్రత్యామ్నాయం.

పరామితి పేరు లేదా గుర్తును జంట కలుపులలో జతపరచవచ్చు, ఇవి పద స్థాన పారామితులకు ఒకటి కంటే ఎక్కువ అంకెలతో లేదా పరామితి తరువాత పేరులో భాగంగా వర్ణించగలిగే అక్షరంతో ఐచ్ఛికంగా ఉంటాయి. డబుల్-కోట్స్ లోపల ఒక పారామీటర్ విస్తరణ జరుగుతుంది:

  1. విస్తరణ ఫలితాల్లో పథం విస్తరణ అమలు చేయబడదు.
  2. @ మినహా, విస్తరణ ఫలితాలపై ఫీల్డ్ విభజన జరుపబడదు.

అదనంగా, కింది ఫార్మాట్లలో ఒకదాన్ని ఉపయోగించి పారామితి విస్తరణను సవరించవచ్చు.

డిఫాల్ట్ విలువలు ఉపయోగించండి. పారామితి అన్సెట్ లేదా శూన్యమైతే, పదాల విస్తరణ ప్రత్యామ్నాయంగా ఉంటుంది; లేకపోతే, పారామితి విలువ ప్రత్యామ్నాయం.

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

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

ప్రత్యామ్నాయ విలువను ఉపయోగించండి. పరామితి సెట్ చేయకపోతే లేదా శూన్యమైతే, శూన్య ప్రత్యామ్నాయం అవుతుంది; లేకపోతే, పదం విస్తరణ ప్రత్యామ్నాయం.

గతంలో చూపిన పారామీటర్ విస్తరణల్లో, ఆకృతీకరణలో ఫార్మల్లోని పెద్దప్రేగు యొక్క ఉపయోగం సెట్ చేయని లేదా శూన్యమైన పరామితి కోసం పరీక్షలో ఉంటుంది; కోలన్ యొక్క మినహాయింపు మాత్రమే సెట్ చేయని పరామితికి ఒక పరీక్షలో ఫలితమవుతుంది.

స్ట్రింగ్ పొడవు. పరామితి విలువలోని అక్షరాల పొడవు.

పారామితి విస్తరణ యొక్క క్రింది నాలుగు రకాలు ప్రాసెసింగ్ ప్రాసెసింగ్ కోసం అందిస్తాయి. ప్రతి సందర్భంలో, సాధారణ వ్యక్తీకరణ సంజ్ఞామానం కంటే నమూనా సరిపోలే సంజ్ఞామానం (షెల్ పద్ధతులు చూడండి), నమూనాలను విశ్లేషించడానికి ఉపయోగిస్తారు. పరామితి * లేదా @ అయితే, విస్తరణ ఫలితంగా పేర్కొనబడలేదు. డబుల్-కోట్స్లో పూర్తి పారామితి విస్తరణ స్ట్రింగ్ను మూసివేయడం వల్ల కింది నాలుగు రకాల నమూనా అక్షరాలు ఉల్లేఖించబడవు, అయితే జంట కలుపుల్లో అక్షరాలను ఉటంకిస్తూ ఈ ప్రభావం ఉంటుంది.

చిన్న సఫిక్స్ నమూనాను తొలగించండి. ఈ పదం ఒక నమూనాను ఉత్పత్తి చేయడానికి విస్తరించింది. పారామితి విస్తరణ తర్వాత పారామీటర్లో ఫలితమవుతుంది, నమూనా తొలగించబడిన అంచులో అతిచిన్న భాగాన్ని తొలగించారు.

అతిపెద్ద సఫిక్స్ నమూనాను తొలగించండి. ఈ పదం ఒక నమూనాను ఉత్పత్తి చేయడానికి విస్తరించింది. పారామితి విస్తరణ తరువాత పారామీటర్లో ఫలితమవుతుంది, నమూనా తొలగించబడిన అంత్య భాగంలోని అతిపెద్ద భాగంతో తొలగించబడుతుంది.

చిన్న ప్రెప్లిక్స్ సరళిని తీసివేయండి. ఈ పదం ఒక నమూనాను ఉత్పత్తి చేయడానికి విస్తరించింది. పారామితి విస్తరణ తర్వాత పారామీటర్లో ఫలితమవుతుంది, నమూనా తొలగించబడిన ఉపసర్గ యొక్క అతిచిన్న భాగం తొలగించబడుతుంది.

అతిపెద్ద ప్రెప్లిక్స్ సరళిని తీసివేయండి. ఈ పదం ఒక నమూనాను ఉత్పత్తి చేయడానికి విస్తరించింది. పారామితి విస్తరణ తర్వాత పారామీటర్లో ఫలితమవుతుంది, నమూనా తొలగించబడిన ఉపసర్గ యొక్క అతిపెద్ద భాగం తొలగించబడుతుంది.

కమాండ్ ప్రత్యామ్నాయం

కమాండ్ ప్రతిక్షేపణ కమాండ్ యొక్క పేరు యొక్క ప్రత్యామ్నాయంగా ఒక కమాండ్ యొక్క అవుట్పుట్ను ప్రత్యామ్నాయంగా అనుమతిస్తుంది. కమాండ్ కింది మూసివేయబడినప్పుడు కమాండ్ ప్రత్యామ్నాయం జరుగుతుంది:

$ (ఆదేశం)

లేదా పో `` తిరిగి వెయ్యబడింది '' వెర్షన్ Pc:

`command`

షెల్ ఒక సబ్ షెల్ ఎన్విరాన్మెంట్లో కమాండ్ను అమలు చేయడం ద్వారా కమాండ్ ప్రత్యామ్నాయాన్ని విస్తరించింది మరియు కమాండ్ యొక్క ప్రత్యుత్పత్తితో కమాండ్ ప్రత్యామ్నాయాన్ని భర్తీ చేసి, ప్రత్యామ్నాయ ముగింపులో ఒకటి లేదా అంతకంటే ఎక్కువ <న్యూ లైన్> యొక్క క్రమాలను తీసివేస్తుంది. (అవుట్పుట్ యొక్క ముగింపుకు ముందు లు తొలగించబడవు, అయితే క్షేత్ర విభజన సమయంలో వారు s లోకి అనువదించవచ్చు, IFS యొక్క విలువ ఆధారంగా మరియు ప్రభావంలో ఉటంకించడం).

అంకగణిత విస్తరణ

అంకగణిత విస్తరణ ఒక అంకగణిత వ్యక్తీకరణను అంచనా వేయడానికి మరియు దాని విలువను మార్చడానికి ఒక యంత్రాంగాన్ని అందిస్తుంది. అంకగణిత విస్తరణ కోసం ఫార్మాట్ ఈ క్రింది విధంగా ఉంటుంది:

$ ((వ్యక్తీకరణ))

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

తరువాత, షెల్ ఇది ఒక అంకగణిత వ్యక్తీకరణగా భావిస్తుంది మరియు వ్యక్తీకరణ విలువను ప్రత్యామ్నాయంగా చేస్తుంది.

వైట్ స్పేస్ విభజన (ఫీల్డ్ విభజన)

పారామీటర్ విస్తరణ, కమాండ్ ప్రత్యామ్నాయం, మరియు అంకగణిత విస్తరణ తర్వాత షెల్ విస్తరణ మరియు ప్రత్యామ్నాయ ఫలితాలను స్కాన్ చేస్తుంది, ఇది ఫీల్డ్ విభజన కోసం డబుల్-కోట్స్లో జరగదు మరియు బహుళ క్షేత్రాలు ఏర్పడతాయి.

షెల్ IFL యొక్క ప్రతి పాత్రను ఒక డీలిమిటర్గా పరిగణిస్తుంది మరియు పారామితి విస్తరణ మరియు కమాండ్ ప్రతిక్షేపణ ఫలితాలను విభజించడానికి విభాజకాలను ఉపయోగించుకుంటుంది.

Pathname విస్తరణ (ఫైల్ పేరు జనరేషన్)

F ఫ్లాగ్ సెట్ చేయకపోతే, పదం విభజన పూర్తయిన తర్వాత ఫైల్ పేరు తరం జరుగుతుంది. ప్రతి పదం స్లాష్లతో వేరు చేయబడిన నమూనాల శ్రేణిగా చూడబడుతుంది. విస్తరణ ప్రక్రియ పదం యొక్క అన్ని పేర్ల పేర్లతో భర్తీ చేయబడుతుంది, దీని పేర్లు ప్రతి నమూనాను నిర్దిష్ట నమూనాతో సరిపోయే స్ట్రింగ్తో భర్తీ చేయగలవు. దీనిపై రెండు పరిమితులు ఉన్నాయి: మొదట, ఒక నమూనా ఒక స్లాష్ను కలిగి ఉన్న స్ట్రింగ్కు సరిపోలడం లేదు, రెండవది, నమూనా యొక్క మొదటి అక్షరం కాలం తప్ప, ఒక నమూనా కాలం నుండి ప్రారంభమయ్యే స్ట్రింగ్కు సరిపోలడం లేదు. తరువాతి విభాగము పాత్పేరు విస్తరణ మరియు కేసు (1) కమాండ్ రెండింటికీ ఉపయోగించిన నమూనాలను వివరిస్తుంది.

షెల్ పద్ధతులు

ఒక నమూనా సాధారణ అక్షరాలను కలిగి ఉంటుంది, ఇవి తమను తాము సరిపోతాయి, మరియు మెటా-అక్షరాలు ఉంటాయి. మెటా పాత్రలు ``! "*" "` `? '' మరియు '' '[' 'ఈ అక్షరాలు తమ ఉల్లేఖన చేస్తే ప్రత్యేక అర్ధాలను కోల్పోతాయి. కమాండ్ లేదా వేరియబుల్ ప్రతిక్షేపణ జరుపబడి, డాలర్ సంకేతం లేదా తిరిగి కోట్స్ డబుల్ కోట్ చేయబడనప్పుడు, ఆ వేరియబుల్ విలువ లేదా కమాండ్ యొక్క అవుట్పుట్ ఈ అక్షరాలు కోసం స్కాన్ చేయబడి ఉంటాయి మరియు అవి మెటా-అక్షరాలుగా మారతాయి.

యాస్ట్రిస్క్ (`` * ") అక్షరాల యొక్క ఏదైనా స్ట్రింగ్తో సరిపోతుంది. ఒక ప్రశ్న గుర్తు ఏ ఒక్క పాత్రను సరిపోతుంది. ఒక ఎడమ బ్రాకెట్ (`` ['') ఒక అక్షర తరగతి పరిచయం. `` "తప్పిపోయినట్లయితే, అక్షరం తరగతి యొక్క ముగింపు ఒక (" ") చేత సూచించబడింది" "['' ఒక పాత్ర తరగతిని పరిచయం చేయకుండా కాకుండా` `సరిపోతుంది. స్క్వేర్ బ్రాకెట్స్ మధ్య అక్షరాలను ఏ అక్షర తరగతి సరిపోతుంది. ఒక మైనస్ గుర్తును ఉపయోగించి అక్షరాల శ్రేణి పేర్కొనవచ్చు. పాత్ర క్లాస్ యొక్క మొదటి పాత్రను ఒక ఆశ్చర్యార్థక గుర్తుగా మార్చడం ద్వారా పాత్ర తరగతి పూర్తి కావచ్చు.

ఒక అక్షర తరగతిలో ``] "చేర్చడానికి, అది మొదటి పాత్రను (` ఏదైనా ఉంటే! '' తర్వాత) రూపొందించండి. ఒక మైనస్ గుర్తును చేర్చడానికి, అది మొదటి లేదా చివరి అక్షర జాబితాలో ఉంచండి

Builtins

ఈ విభాగం అంతర్నిర్మిత అంతర్నిర్మిత కమాండ్లను జాబితా చేస్తుంది, ఎందుకంటే అవి ప్రత్యేక ప్రక్రియ ద్వారా నిర్వహించలేని కొన్ని ఆపరేషన్లను నిర్వహించాల్సిన అవసరం ఉంది. వీటికి అదనంగా, సమర్ధత కోసం నిర్మించిన అనేక ఇతర ఆదేశాలు ఉన్నాయి (ఉదా. Echo 1).

:

0 (నిజమైన) నిష్క్రమణ విలువను అందించే ఒక శూన్య ఆదేశం.

. ఫైలు

పేర్కొన్న ఫైలులోని కమాండ్లు షెల్ ద్వారా చదివి వినిపిస్తాయి.

అలియాస్ [ పేరు [ = స్ట్రింగ్ ... ]]

పేరు = స్ట్రింగ్ తెలుపబడితే, షెల్ అలియాస్ పేరును విలువ స్ట్రింగ్ తో నిర్వచిస్తుంది, పేరు మాత్రమే పేర్కొన్నట్లయితే, అలియాస్ పేరు విలువ ముద్రించబడుతుంది. వాదనలు లేకుండా, అంతర్నిర్మిత అలియాస్ అన్ని నిర్వచించిన మారుపేర్ల యొక్క పేర్లు మరియు విలువలను ముద్రిస్తుంది ( యులియాస్ చూడండి )

బిజి [ జాబ్] ...

నేపథ్యంలో పేర్కొన్న ఉద్యోగాలు (లేదా ఉద్యోగాలు లేకుంటే ప్రస్తుత ఉద్యోగం) కొనసాగించండి.

కమాండ్ ఆదేశం arg ...

పేర్కొన్న అంతర్నిర్మిత ఆదేశాన్ని అమలు చేయండి. (మీరు షెల్ ఫంక్షన్ ను ఒక అంతర్నిర్మిత ఆదేశంతో అదే పేరుతో వుపయోగిస్తే ఇది ఉపయోగపడుతుంది.)

cd [ డైరెక్టరీ ]

పేర్కొన్న డైరెక్టరీకి (డిఫాల్ట్ $ HOME) మారండి CDPATH కొరకు ప్రవేశము cd కమాండ్ యొక్క ఎన్విరాన్మెంట్లో లేదా షెల్ వేరియబుల్ CDPATH సెట్ చేయబడితే మరియు డైరెక్టరీ పేరు స్లాష్తో మొదలవుతుంది, అప్పుడు CDPATH జాబితా చేయబడిన డైరెక్టరీలు శోధించబడతాయి పేర్కొన్న డైరెక్టరీ కోసం. CDPATH యొక్క ఫార్మాట్ PATH యొక్క మాదిరిగానే ఉంటుంది, ఇది ఇంటరాక్టివ్ షెల్ లో, cd కమాండ్ డైరెక్టరీ యొక్క పేరును ముద్రిస్తుంది, ఇది యూజర్ యొక్క పేరు నుండి భిన్నంగా ఉన్నట్లయితే అది వాస్తవానికి మారుతుంది. CDPATH విధానం ఉపయోగించబడినందున లేదా లాంఛనప్రాయ లింక్ దాటబడినందున ఇవి భిన్నంగా ఉండవచ్చు.

eval స్ట్రింగ్ ...

ఖాళీలతో అన్ని వాదనలు కట్టుబాట్లు. అప్పుడు తిరిగి అన్వయించి ఆదేశాన్ని అమలు చేయండి.

exec [ command arg arg ... ]

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

నిష్క్రమణ [ నిష్క్రమణ ]

షెల్ ప్రాసెస్ను రద్దు చేయండి. Exitstatus ఇచ్చినట్లయితే అది షెల్ యొక్క నిష్క్రమణ స్థితిగా ఉపయోగించబడుతుంది; లేకుంటే ముందు ఆదేశం యొక్క నిష్క్రమణ స్థితి ఉపయోగించబడుతుంది.

ఎగుమతి పేరు ...

ఎగుమతి- p

పేర్కొన్న పేర్లు ఎగుమతి చేయబడతాయి, తద్వారా వారు తదుపరి ఆదేశాల పర్యావరణంలో కనిపిస్తాయి. ఒక వేరియబుల్ను అన్-ఎగుమతి చేయటానికి ఏకైక మార్గం దాన్ని సెట్ చేయడమే. షెల్ ఒక వేరియబుల్ విలువను వ్రాయడం ద్వారా ఎగుమతి చేయబడిన సమయంలో సెట్ చేయడానికి అనుమతిస్తుంది

ఎగుమతి పేరు = విలువ

ఏ వాదనలు లేకుండా ఎగుమతి ఆదేశం అన్ని ఎగుమతి వేరియబుల్స్ యొక్క పేర్లను జాబితా చేస్తుంది. P - ఐచ్ఛికం తెలిపిన ప్రకారం, అవుట్పుట్ నాన్ ఇంటరాక్టివ్ ఉపయోగం కోసం దానికి తగిన విధంగా ఫార్మాట్ చేయబడుతుంది.

fc [- సంపాదకుడు ] [ మొదటి [ చివరి ]

fc-l [- nr ] [ మొదటి [ చివరి ]]

fc-s [ పాత = కొత్త ] [ మొదటి ]

Fc అంతర్నిర్మిత జాబితాలు, లేదా సవరణలు మరియు తిరిగి అమలులు, గతంలో ఒక ఇంటరాక్టివ్ షెల్కు ప్రవేశించింది.

-e ఎడిటర్

ఆదేశాలను సవరించడానికి ఎడిటర్చే ఎడిటర్ పేరును ఉపయోగించండి. ఎడిటర్ స్ట్రింగ్ అనేది కమాండ్ పేరు, ఇది PATH వేరియబుల్ ద్వారా శోధించవచ్చు. FCEDIT చరరాశంలో విలువ డిఫాల్ట్గా ఉపయోగించబడుతుంది - e పేర్కొనబడలేదు. FCEDIT శూన్యమైతే లేదా సెట్ చేయకపోతే, EDITOR వేరియబుల్ యొక్క విలువ ఉపయోగించబడుతుంది. EDITOR శూన్యమైతే లేదా సెట్ చేయకపోతే, ed (1) ఎడిటర్గా ఉపయోగించబడుతుంది.

-l (ell)

వాటిలో ఎడిటర్ను ప్రేరేపించడం కంటే ఆదేశాలను జాబితా చేయండి. కమాండ్ సంఖ్య చేత ప్రతి ఆదేశానికి అనుగుణంగా - మొదటి మరియు చివరి ఆపరేషన్లచే సూచించబడిన క్రమంలో ఆదేశాలను వ్రాయబడుతుంది.

-n

-l తో జాబితా ఉన్నప్పుడు కమాండ్ సంఖ్యలు అణిచివేసేందుకు.

-r

లిస్ట్ చేయబడిన ఆదేశాల క్రమాన్ని రివర్స్ చేయండి ( ఎల్ - లేదా ఎడిటెడ్ (ఎవరి - లు లేదా - లు లేని)

-s

ఒక ఎడిటర్ని ప్రేరేపించకుండా కమాండ్ని తిరిగి అమలు చేయండి.

ప్రధమ

గత

జాబితా లేదా సవరించడానికి ఆదేశాలను ఎంచుకోండి. ప్రాప్తి చేయగల మునుపటి ఆదేశాల సంఖ్య HISTSIZE వేరియబుల్ యొక్క విలువచే నిర్ణయించబడుతుంది. మొదటి లేదా చివరి లేదా రెండూ విలువ క్రింది వాటిలో ఒకటి:

[+] సంఖ్య

కమాండ్ సంఖ్యను సూచించే సానుకూల సంఖ్య; కమాండ్ సంఖ్యలు - l ఐచ్ఛికంతో ప్రదర్శించబడతాయి.

-number

ఇంతకు ముందు ఆదేశాల సంఖ్య అమలు చేయబడిన ఆదేశంకు ప్రతికూల దశాంశ సంఖ్య. ఉదాహరణకు, -1 వెంటనే మునుపటి ఆదేశం.

స్ట్రింగ్

స్ట్రింగ్ అనేది ఆ స్ట్రింగ్తో మొదట ప్రవేశించిన ఆదేశాన్ని సూచిస్తుంది. పాత = కొత్త ఒపెరాన్ కూడా పేర్కొనబడకపోతే- s మొదటి ఆరంభంలో స్ట్రింగ్ రూపం ఎంబెడెడ్ సమాన సంకేతం ఉండకూడదు.

క్రింది ఎన్విరాన్మెంట్ వేరియబుల్స్ fc అమలును ప్రభావితం చేస్తాయి:

FCEDIT

ఉపయోగించడానికి ఎడిటర్ యొక్క పేరు.

HISTSIZE

అందుబాటులో ఉన్న మునుపటి ఆదేశాల సంఖ్య.

fg [ ఉద్యోగం ]

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

getopts optstring var

POSIX getopts కమాండ్, బెల్ ల్యాబ్స్ -డెవిడెడ్ గోటోప్ (1) తో గందరగోళంగా ఉండకూడదు.

మొదటి వాదన వరుసల శ్రేణి అయి ఉండాలి, వీటిలో ప్రతి ఒక్కటి ఐచ్ఛికం ఒక వాదనను సూచించడానికి ఒక కోలన్ ద్వారా ఐచ్ఛికంగా ఉండవచ్చు. పేర్కొన్న వేరియబుల్ పార్సెడ్ ఐచ్చికంకు అమర్చబడింది.

గెస్టాప్ట్ ఆదేశం పాత గెప్పాట్ (1) ఉపయోగాన్ని తెల్లగా కలిగి ఉన్న వాదాల నిర్వహణకు కారణం అవుతుంది.

Getopts builtin పారామితులు జాబితా నుండి ఎంపికలు మరియు వారి వాదనలు పొందటానికి ఉపయోగించవచ్చు. ప్రవేశించినప్పుడు, getopts var ఎంపిక ద్వారా షిట్ వేరియబుల్ జాబితాలో షిట్ వేరియబుల్ నుండి షెల్ వేరియబుల్ లో ఇండెక్స్ యొక్క ఆప్షన్ను ఉంచింది OPTIND షెల్ ప్రయోగించినప్పుడు, OPTIND 1 కు ప్రారంభించబడుతుంది. ఒక వాదన, getopts builtin షెల్ వేరియబుల్ OPTARG లో ఉంచుతుంది ఆప్ట్ స్ట్రింగ్లో ఒక ఎంపికను అనుమతించకపోతే అప్పుడు OPTARG సెట్ చేయబడదు.

ఆప్స్ట్రింగ్ గుర్తించబడిన ఎంపిక అక్షరాల యొక్క స్ట్రింగ్. ఒక లేఖను ఒక కోలన్ అనుసరిస్తే, ఐచ్ఛికం తెలుపు స్థలం ద్వారా దాని నుండి వేరుచేయబడని వాదనను కలిగి ఉంటుంది. అనుకున్న చోట ఎంపిక ఐచ్చికం కనుగొనబడకపోతే, getopts వేరియబుల్ var ను ``? '' కు తీసుకువస్తుంది. అప్పుడు getopts OPTARG ను అన్సెట్ చేసి , అవుట్పుట్ను ప్రామాణిక లోపంకి వ్రాస్తుంది. అన్ని లోపాలను ఆప్స్ట్రింగ్ యొక్క మొదటి అక్షరాన్ని ఒక కోలన్ను పేర్కొనడం ద్వారా విస్మరించబడుతుంది.

చివరి ఎంపిక చేరినప్పుడు ఒక nonzero విలువ తిరిగి. మిగిలిన వాదనలు లేనట్లయితే, getopts ప్రత్యేక ఎంపికను var సెట్ చేస్తుంది `` - '' లేకపోతే, అది var సెట్ చేస్తుంది ``?

కింది సంకేత భాగాన్ని ఒక కమాండ్ కోసం వాదనలు ఎలా ప్రాసెస్ చేస్తాయో చూపుతుంది, అది ఐచ్ఛికాలు [a] మరియు [b] మరియు ఐచ్ఛికం [c] ను తీసుకోవటానికి వాదన అవసరమవుతుంది.

గెట్స్ abc: f
అలా
కేసు $ f లో
ఒక | బి) ఫ్లాగ్ = $ f;
సి) carg = $ OPTARG;
\? ప్రతిధ్వని $ USAGE; నిష్క్రమణ 1;
esac
పూర్తి
shift `expr $ OPTIND - 1`

ఈ కోడ్ ఈ క్రింది వాటికి సమానమైనదిగా ఆమోదిస్తుంది:

cmd -acarg ఫైలు ఫైలు
cmd -a -c arg file ఫైల్
cmd -carg-a ఫైలు ఫైలు
cmd -a -carg - ఫైలు ఫైలు

hash -rv ఆదేశం ...

షెల్ ఆదేశాల స్థానాలను గుర్తుచేసే ఒక హాష్ పట్టికను నిర్వహిస్తుంది. ఏ వాదనలు లేకుండా, హాష్ ఆదేశం ఈ పట్టిక యొక్క కంటెంట్లను ముద్రిస్తుంది. గత cd ఆదేశం నుండి చూచినట్లు లేని ఎంట్రీలు నక్షత్ర గుర్తుతో గుర్తించబడతాయి; ఈ ఎంట్రీలు చెల్లనివిగా ఉండటం సాధ్యమే.

వాదాలతో, హాష్ ఆదేశం హాష్ టేబుల్ నుండి పేర్కొన్న ఆదేశాలను తొలగిస్తుంది (అవి విధులు అయితే) మరియు వాటిని గుర్తించడం. - v ఐచ్ఛికంతో, హాష్ ఆదేశాల స్థానాలను వాటిని కనుగొన్నప్పుడు ముద్రిస్తుంది. - r ఐచ్ఛికం హాష్ పట్టికలో అన్ని ఎంట్రీలను తొలగించడానికి కారణమవుతుంది.

ఉద్యోగం [ ఉద్యోగం ]

ఉద్యోగ ప్రక్రియలో ప్రక్రియల యొక్క id ను ప్రింట్ చేయండి. ఉద్యోగ వాదన తొలగించబడితే, ప్రస్తుత ఉద్యోగం ఉపయోగించబడుతుంది.

ఉద్యోగాలు

ఈ షెల్ ప్రస్తుత షెల్ ప్రాసెస్ యొక్క పిల్లల అన్ని నేపథ్య ప్రక్రియలను జాబితా చేస్తుంది.

pwd

ప్రస్తుత డైరెక్టరీని ముద్రించండి. అంతర్నిర్మిత కమాండ్ అదే పేరు యొక్క ప్రోగ్రామ్ నుండి వేరుగా ఉండవచ్చు, ఎందుకంటే అంతర్నిర్మిత కమాండ్ ప్రస్తుత డైరెక్టరీని ప్రతిసారీ దానిని పునఃప్రారంభం కాకుండా గుర్తు చేస్తుంది. ఇది వేగంగా చేస్తుంది. అయితే, ప్రస్తుత డైరెక్టరీ పేరు మార్చబడితే, pwd యొక్క అంతర్నిర్మిత సంస్కరణ డైరెక్టరీకి పాత పేరును ప్రింట్ చేయడాన్ని కొనసాగిస్తుంది.

చదివిన [- p ప్రాంప్ట్ ] [- r ] వేరియబుల్ ...

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

అప్రమేయంగా, - r ఐచ్ఛికం తెలుపబడకపోతే, బాక్ స్లాష్ `` \ '"తప్పించుకొను పాత్ర వలె పనిచేస్తుంది, ఈ కింది పాత్ర వాచ్యంగా నడపబడుతోంది. ఒక బాక్ స్లాష్ను కొత్త లైన్ చేస్తే, బాక్ స్లాష్ మరియు కొత్త లైన్ తొలగించబడుతుంది.

చదవడానికి మాత్రమే పేరు ...

చదవడానికి మాత్రమే -p

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

చదవడానికి మాత్రమే పేరు = విలువ

వాదనలు లేకుండా, చదవడానికి మాత్రమే ఆదేశం అన్ని చదివిన వేరియబుల్స్ యొక్క పేర్లను జాబితా చేస్తుంది. P - ఐచ్ఛికం తెలిపిన ప్రకారం, అవుట్పుట్ నాన్ ఇంటరాక్టివ్ ఉపయోగం కోసం దానికి తగిన విధంగా ఫార్మాట్ చేయబడుతుంది.

సెట్ {{- ఎంపికలు | + ఎంపికలు | - ఆర్ ... ]

సెట్ కమాండ్ మూడు వేర్వేరు విధులు నిర్వహిస్తుంది.

ఏ వాదనలు లేకుండా, ఇది అన్ని షెల్ వేరియబుల్స్ విలువలను జాబితా చేస్తుంది.

ఐచ్ఛికాలు ఇచ్చినట్లయితే, అది నిర్దిష్ట ఎంపిక ఫ్లాగ్లను సెట్ చేస్తుంది లేదా SX ఆర్గ్యుమెంట్ జాబితా ప్రాసెసింగ్ అని పిలిచే విభాగంలో వివరించిన విధంగా వాటిని క్లియర్ చేస్తుంది.

పేర్కొన్న వాదాలకు షెల్ యొక్క స్థాన పారామితుల యొక్క విలువలను సెట్ చేయడమే సెట్ కమాండ్ యొక్క మూడవ ఉపయోగం. స్థాన పారామీటర్లను ఏ ఐచ్చికాలను మార్చకుండా మార్చడానికి, మొదటి ఆర్గ్యుమెంట్ సెట్ చేయటానికి `` - '' ఉపయోగించండి. ఏ అర్దములు లేనట్లయితే, సెట్ కమాండ్ అన్ని స్థాన పారామీటర్లను క్లియర్ చేస్తుంది (' shift $ #' ను అమలు చేయడానికి సమానం.

వేరియబుల్ విలువ

వేరియబుల్కు విలువని అప్పిస్తుంది. (సాధారణంగా, సార్వర్ సెట్వార్ వాడటం కన్నా వేరియబుల్ = విలువ రాయడానికి ఉత్తమం, దీని పేర్లు పారామితులుగా ఆమోదించబడిన వేరియబుల్స్కు విలువలను కేటాయించే విధులుగా ఉద్దేశించబడ్డాయి.)

షిఫ్ట్ [ n ]

స్థాన పారామితులను n సార్లు మార్చండి. ఒక షిఫ్ట్ $ 2 యొక్క విలువను $ 2 యొక్క విలువను $ 2 యొక్క విలువను $ 3 యొక్క విలువకు అమర్చుతుంది మరియు దాని ద్వారా $ # యొక్క విలువను తగ్గించవచ్చు. స్థాన పారామితుల సంఖ్య కంటే n ఎక్కువ ఉంటే, shift ఒక దోష సందేశమును జారీ చేస్తుంది మరియు తిరిగి స్థితి 2 తో నిష్క్రమించండి.

సార్లు

షెల్ కోసం సేకరించబడిన వినియోగదారు మరియు సిస్టమ్ సమయాలను ముద్రించండి మరియు షెల్ నుండి అమలు చేసే ప్రక్రియల కోసం. తిరిగి స్థితి 0.

ట్రాప్ చర్య సిగ్నల్ ...

పేర్కొన్న సిగ్నల్స్ అందుకున్నప్పుడు చర్యలను పార్స్ చేయడానికి మరియు అమలు చేయడానికి షెల్ను సృష్టించండి. సంకేతాలు సిగ్నల్ సంఖ్య ద్వారా పేర్కొనబడ్డాయి. సిగ్నల్ 0 ఉంటే, షెల్ నిష్క్రమిస్తున్నప్పుడు చర్య అమలు అవుతుంది. చర్య శూన్యంగా ఉండవచ్చు లేదా `` - "ముందు పేర్కొన్న సిగ్నల్ నిర్లక్ష్యం చేయబడటానికి కారణమవుతుంది మరియు రెండవది డిఫాల్ట్ చర్య తీసుకోవడానికి కారణమవుతుంది. షెల్ ఒక సబ్హెల్ ను విడిచిపెట్టినప్పుడు, ఇది రీసెట్లను డిఫాల్ట్ చర్యకు (కానీ నిర్లక్ష్యం చేయలేదు) సంకేతాలను కలిగి ఉంటుంది. ట్రాప్ కమాండ్ షెల్ ప్రవేశంపై నిర్లక్ష్యం చేసిన సంకేతాలపై ఎలాంటి ప్రభావం చూపలేదు.

రకం [ పేరు ... ]

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

ulimit [- H-S ] [- a -tfdscmlpn [ విలువ ]]

గురించి విచారిస్తున్నాను లేదా ప్రక్రియలపై హార్డ్ లేదా మృదు పరిమితులను సెట్ చేయండి లేదా కొత్త పరిమితులను సెట్ చేయండి. హార్డ్ పరిమితి (ఇది ఎలాంటి ప్రక్రియను ఉల్లంఘించటానికి అనుమతించబడదు, మరియు అది తగ్గించబడిన తరువాత పెంచబడదు) మరియు మృదు పరిమితి (ఇది సంకేతాలను సూచించడానికి కారణమవుతుంది కానీ తప్పనిసరిగా హతమార్చబడదు, మరియు పెంచబడవచ్చు) మధ్య ఎంపిక ఈ ఫ్లాగ్స్:

-h

సెట్ లేదా హార్డ్ పరిమితులు గురించి విచారించమని

-S

సెట్ లేదా మృదు పరిమితులు గురించి విచారించమని. H లేదా - S పేర్కొనబడకపోతే, మృదు పరిమితి ప్రదర్శించబడుతుంది లేదా రెండు పరిమితులు సెట్ చేయబడతాయి. రెండింటినీ పేర్కొన్నట్లయితే, చివరి విజయాలు.

ప్రశ్నించే పరిమితి లేదా అమర్చిన పరిమితి, అప్పుడు ఈ జెండాలలో ఏవైనా పేర్కొనడం ద్వారా ఎంచుకోబడుతుంది:

-a

ప్రస్తుత పరిమితులను చూపు

-t

CPU సమయ పరిమితిని చూపించు లేదా సెట్ చేయండి (సెకన్లలో)

-f

(512-బైట్ బ్లాక్స్లో) సృష్టించగల అతిపెద్ద ఫైల్లో చూపు లేదా సెట్ పరిమితిని సెట్ చేయండి

-d

ఒక ప్రక్రియ యొక్క డేటా సెగ్మెంట్ పరిమాణంలో (కిలోబైట్లు)

-s

ఒక ప్రక్రియ యొక్క స్టాక్ పరిమాణంలో (కిలోబైట్లు)

-c

ఉత్పత్తి చేయగల అతిపెద్ద కోర్ డంప్ పరిమాణంపై పరిమితిని చూపించండి లేదా సెట్ చేయండి (512-బైట్ బ్లాక్స్లో)

-m

ఒక ప్రక్రియ ద్వారా ఉపయోగపడే మొత్తం శారీరక స్మృతిపై పరిమితిని చూపించు లేదా సెట్ చేయండి (కిలోబైట్లు)

-l

ఒక ప్రక్రియ లాక్ (2) ( కిలోబైట్లు )

-p

ఈ యూజర్ ఒక సమయంలో కలిగి ఉన్న ప్రక్రియల సంఖ్యపై పరిమితిని చూపుతుంది లేదా సెట్ చేయండి

-n

ఒక ప్రక్రియ ఒకేసారి తెరవగలిగే సంఖ్య ఫైళ్లలో పరిమితిని చూపుతుంది లేదా సెట్ చేయండి

వీటిలో ఏదీ పేర్కొనకపోతే, అది చూపిన లేదా సెట్ చేయబడిన ఫైల్ పరిమాణంలో పరిమితి. విలువ పేర్కొనబడినట్లయితే, పరిమితి ఆ సంఖ్యకు అమర్చబడుతుంది; లేకపోతే ప్రస్తుత పరిమితి ప్రదర్శించబడుతుంది.

ఏకపక్ష ప్రక్రియ యొక్క పరిధులు ప్రదర్శించబడవచ్చు లేదా sysctl (8) ఉపయోగాన్ని ఉపయోగించి అమర్చవచ్చు.

umask [ ముసుగు ]

Umask విలువను (umask (2) చూడండి) నిర్దేశించిన అష్టాంశ విలువకు సెట్ చేయండి. వాదన విస్మరించబడితే, umask విలువ ముద్రించబడుతుంది.

యులియాస్ [- ఒక ] [ పేరు ]

పేరు పేర్కొన్నట్లయితే, షెల్ అలియాస్ ను తొలగిస్తుంది. - పేర్కొనబడినట్లయితే, అన్ని మారుపేర్లు తీసివేయబడతాయి.

పేరుని సెట్ చెయ్యండి ...

పేర్కొన్న వేరియబుల్స్ మరియు ఫంక్షన్స్ సెట్ చేయబడవు మరియు ఎగుమతి చేయబడవు. ఇచ్చిన పేరు వేరియబుల్ మరియు ఫంక్షన్ రెండింటికి అనుగుణంగా ఉంటే, వేరియబుల్ మరియు ఫంక్షన్ రెండూ సెట్ చేయబడవు.

వేచి ఉండండి [ ఉద్యోగం ]

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

కమాండ్ లైన్ ఎడిటింగ్

Sh టెర్మినల్ నుండి ఇంటరాక్టివ్గా వాడబడుతున్నప్పుడు, ప్రస్తుత కమాండ్ మరియు కమాండ్ చరిత్ర (fx లో sx బిల్ల్టిన్స్ చూడండి) vi-mode command-line editing ఉపయోగించి సవరించవచ్చు. ఈ రీతి vi man పేజీలో వివరించిన వాటి యొక్క ఉపసముదాయం వలె, క్రింద వివరించిన ఆదేశాలను ఉపయోగిస్తుంది. కమాండ్ `సెట్ '-ఓ vi vi- మోడ్ సంకలనం మరియు చొప్పించు మోడ్ లోకి sh ఉంచడానికి అనుమతిస్తుంది. Vi-mode ఎనేబుల్ చేస్తే, sh ఇన్సర్ట్ మోడ్ మరియు కమాండ్ మోడ్ మధ్య స్విచ్ చేయవచ్చు. సంపాదకుడు పూర్తిగా ఇక్కడ వర్ణించలేదు, కానీ తరువాత పత్రంలో ఉంటుంది. ఇది vi కు సమానమైనది: AQ ESC టైప్ VI కమాండ్ మోడ్ లోకి మీకు త్రో చేస్తుంది. కమాండ్ మోడ్ లో ఉన్నప్పుడు AQ తిరిగి కొట్టడం షెల్ లైన్ పంపుతుంది.

ముఖ్యమైనది: మీ కంప్యుటర్లో కమాండ్ ఎలా ఉపయోగించబడుతుందో చూడుటకు man command ( % man ) ఉపయోగించండి.