એશ - લિનક્સ કમાન્ડ - યુનિક્સ કમાન્ડ

NAME

sh - આદેશ ઈન્ટરપ્રીટર ( શેલ )

સમન્વય

sh [- / + aCefnuvxIimqsVEbc ] [- લાંબા નામ ] -વર્ગો [ લક્ષ્ય ... ]

DESCRIPTION

એસ એ સિસ્ટમ માટે પ્રમાણભૂત આદેશ ઈન્ટરપ્રીટર છે. શેલનું વર્તમાન સંસ્કરણ શેલ માટે POSIX 1003.2 અને 1003.2 એક સ્પષ્ટીકરણો સાથે અનુકૂળ થવા માટે બદલાવાની પ્રક્રિયામાં છે. આ સંસ્કરણમાં ઘણી સુવિધાઓ છે જે તેને કોર્ન શેલની જેમ દેખાય છે, પરંતુ તે કોર્ન શેલ ક્લોન નથી (જુઓ ksh (1)). ફક્ત POSIX અને કેટલાક બર્કલે એક્સ્ટેન્શન્સ દ્વારા નિયુક્ત લક્ષણો, આ શેલમાં શામેલ કરવામાં આવી રહ્યાં છે. અમે સમય દ્વારા પીઓએસઆઇસીએક્સનું અનુપ્રયોગ અપેક્ષા રાખીએ છીએ 4.4 બીએસડી રિલિઝ થાય છે. આ મૅન પેજ શેલના ટ્યુટોરીયલ અથવા સંપૂર્ણ સ્પષ્ટીકરણ માટેનો ઈરાદો નથી.

ઝાંખી

શેલ એક આદેશ છે જે રેખાઓ ફાઈલ અથવા ટર્મિનલ પરથી વાંચે છે, તેમને અર્થઘટન કરે છે, અને સામાન્ય રીતે અન્ય આદેશો ચલાવે છે. તે પ્રોગ્રામ છે જે વપરાશકર્તા જ્યારે સિસ્ટમમાં લૉગ કરે છે ત્યારે ચાલી રહ્યું છે (જોકે વપરાશકર્તા chsh (1) આદેશ સાથે એક અલગ શેલ પસંદ કરી શકે છે). શેલ ફ્લો નિયંત્રણ નિયંત્રણ ધરાવે છે તેવી ભાષાને અમલમાં મૂકે છે, જે મેક્રો સુવિધા છે જે ડેટા સ્ટોરેજ સાથે વધુમાં વિવિધ સુવિધાઓ પ્રદાન કરે છે, જેમાં ઇતિહાસ અને લાઇન એડિટિંગ ક્ષમતાઓમાં બનેલ છે. તે ઇન્ટરેક્ટિવ ઉપયોગની સહાય કરવા માટે ઘણા લક્ષણોનો સમાવેશ કરે છે અને ફાયદો છે કે અર્થઘટનાત્મક ભાષા ઇન્ટરેક્ટિવ અને નોન-ઇન્ટરેક્ટિવ ઉપયોગ (શેલ સ્ક્રિપ્ટ્સ) બંને માટે સામાન્ય છે. એટલે કે, આદેશો સીધી ચાલી શેલ પર લખી શકાય છે અથવા ફાઇલમાં મૂકી શકાય છે અને ફાઈલ શેલ દ્વારા સીધા જ ચલાવી શકાય છે.

આમંત્રણ

જો કોઈ દલીલ હાજર ન હોય અને જો શેલનું પ્રમાણભૂત ઇનપુટ ટર્મિનલ સાથે જોડાયેલ હોય (અથવા જો - i ફ્લેગ સેટ હોય તો), અને - c વિકલ્પ હાજર નથી, શેલ એક ઇન્ટરેક્ટિવ શેલ તરીકે ગણવામાં આવે છે. ઇન્ટરેક્ટિવ શેલ સામાન્ય રીતે દરેક આદેશ પહેલા પૂછે છે અને પ્રોગ્રામિંગ અને આદેશ ભૂલોને અલગ રીતે હેન્ડલ કરે છે (નીચે વર્ણવેલ પ્રમાણે). જ્યારે પ્રથમ શરુ થાય છે, શેલ દલીલ 0 નું નિરીક્ષણ કરે છે, અને જો તે ડૅશથી શરૂ થાય છે - 'શેલને લોગિન શેલ પણ ગણવામાં આવે છે. આ સામાન્ય રીતે સિસ્ટમ દ્વારા આપમેળે થાય છે જ્યારે વપરાશકર્તા પ્રથમ લોગ કરે છે. પ્રવેશ શૅલ પહેલા ફાઇલો / etc / profile અને .profile માંથી આદેશોને વાંચે છે જો તે અસ્તિત્વમાં હોય. જો પર્યાવરણ ચલ ENV શેલમાં પ્રવેશ પર સેટ કરેલ હોય અથવા લોગિન શેલના .profile માં સુયોજિત હોય, તો શેલ આગામી ENV માં નામની ફાઇલમાંથી આદેશો વાંચે છે, તેથી વપરાશકર્તાએ આદેશો મૂકવો જોઈએ કે જે ફક્ત તેના પર ચલાવવામાં આવે છે .profile ફાઇલમાં લૉગિન સમય, અને આદેશો કે જે દરેક શેલ માટે ENV ફાઇલની અંદર ચલાવવામાં આવે છે. કેટલીક ફાઇલમાં ENV ચલને સુયોજિત કરવા માટે, તમારી હોમ ડિરેક્ટરના તમારી .profile માં નીચેની લીટી મૂકો

ENV = $ HOME / .shinit; નિકાસ ENV

`` .shinit '' તમે જે ઈચ્છો છો તે કોઈપણ ફાઇલનામ બદલ્યા છે. શેલ સ્ક્રિપ્ટ્સ અને બિન-ઇન્ટરેક્ટિવ શેલો સહિત, શેલના દરેક આમંત્રણ માટે ENV ફાઇલ વાંચવામાં આવે છે, કારણ કે, નીચેના નમૂનાનો ઉપયોગ ENV ફાઇલમાં ઇન્ટરેક્ટિવ ઇન્વોશન્સમાં કરવા માટે ઉપયોગી છે. નીચે `` કેસ '' અને `` esac '' ની અંદર આદેશો મૂકો (આ આદેશો પાછળથી વર્ણવવામાં આવે છે):

કેસ $ - માં * i *)

# અરસપરસ ઉપયોગ માટે માત્ર આદેશો

...

ઇસાક

જો વિકલ્પોની સાથે આદેશ વાક્ય દલીલો સ્પષ્ટ કરવામાં આવી હોય, તો શેલ પ્રથમ દલીલને ફાઇલના નામ તરીકે ગણાય છે જેમાંથી આદેશો (એક શેલ સ્ક્રિપ્ટ) વાંચવા માટે છે, અને બાકીની દલીલો શેલના સ્થાયી પરિમાણો તરીકે સેટ છે ($ 1 , $ 2, વગેરે). નહિંતર, શેલ આદેશ તેના પ્રમાણભૂત ઇનપુટથી વાંચે છે.

દલીલ યાદી પ્રોસેસીંગ

એક અક્ષરના બધા જ વિકલ્પો અનુરૂપ નામ ધરાવે છે જેનો ઉપયોગ - o વિકલ્પમાં દલીલ તરીકે ઉપયોગ કરી શકાય છે. સેટ- નામ નીચે વર્ણનમાં સિંગલ લેટર વિકલ્પ આગળ આપવામાં આવ્યું છે. ડેશનો ઉલ્લેખ કરવો `` - '' વિકલ્પને ચાલુ કરે છે, જ્યારે પ્લસ `` + '' નો ઉપયોગ કરીને વિકલ્પ નિષ્ક્રિય કરે છે. નીચેના વિકલ્પો આદેશ વાક્યમાંથી અથવા સેટ (1) બિલ્ટિન (પછી વર્ણવેલ) થી સેટ કરી શકાય છે.

-અલ્લેક્સપોર્ટ

સોંપેલ તમામ ચલોનો નિકાસ કરો (4.4alpha માટે અનિશ્ચિત)

-સી

આદેશ વાક્યમાંથી આદેશો વાંચો. કોઈ આદેશો પ્રમાણભૂત ઇનપુટમાંથી વાંચવામાં આવશે નહીં.

-C નોકલોબબર

હાલની ફાઇલોને ``> '' સાથે ન લખી (4.4લફા માટે UNIMPLEMENTED)

-ઈ રીઅર

જો ઇન્ટરેક્ટિવ નહિં હોય, તો તરત જ બહાર નીકળો જો કોઈ પણ વણબંધિત આદેશ નિષ્ફળ થાય. આદેશની બહાર નીકળવાની સ્થિતિ સ્પષ્ટ રીતે પરીક્ષણમાં લેવાતી હોવાનું માનવામાં આવે છે જો આદેશનો ઉપયોગ એલિફટમાં અથવા જ્યારે સુધી અથવા જ્યારે `` && '' અથવા `` & `` '' ઓપરેટર) ની ડાબી હેન્ડ ઓપરેન્ડ હોય ત્યારે નિયંત્રણને નિયંત્રિત કરવા માટે વપરાય છે.

-એફ નોગ્લોબ

પાથનામને વિસ્તરણ અક્ષમ કરો.

-n noexec

ઇન્ટરેક્ટિવ ન હોય તો, આદેશો વાંચો પરંતુ તેમને ચલાવશો નહીં. શૅલ સ્ક્રિપ્ટ્સની સિન્ટેક્સ તપાસવા માટે આ ઉપયોગી છે.

-યુ નેસેસેટ

કોઈ વેરિએબલને વિસ્તૃત કરવાનો પ્રયત્ન કરતી વખતે પ્રમાણભૂત ભૂલનો સંદેશ લખો કે જે સેટ નથી, અને જો શેલ અરસપરસ ન હોય તો તરત જ બહાર નીકળો (4.4alpha માટે અનિશ્ચિત)

-વી વર્બોઝ

શેલ તેના ઇનપુટને પ્રમાણભૂત ભૂલમાં લખે છે કારણકે તે વાંચવામાં આવે છે. ડિબગીંગ માટે ઉપયોગી

-x Xxtrace

પ્રત્યેક આદેશને સ્ટાન્ડર્ડ એરર પર લખો (તે અમલી થાય તે પહેલા `+ 'પહેલાની) ડીબગિંગ માટે ઉપયોગી.

-q શાંતપ્રોફાઇલ

જો - v અથવા - x વિકલ્પો સુયોજિત કરવામાં આવ્યા હોય, તો આરંભિક ફાઈલો વાંચતી વખતે તેમને લાગુ પડતા નથી, આ / etc / profile .profile અને ENV પર્યાવરણ ચલ દ્વારા સ્પષ્ટ થયેલ ફાઇલ છે.

-અમને અવગણના

ઈએનએફ નો ઇનપુટ પર અવગણો જ્યારે ઇન્ટરેક્ટિવ.

-i ઇન્ટરેક્ટિવ

શેલને આકસ્મિક રીતે વર્તે તે માટે દબાણ કરો.

-એમ મોનિટર

જોબ નિયંત્રણ ચાલુ કરો (ઇન્ટરેક્ટિવ ત્યારે આપમેળે સેટ કરો)

-s stdin

પ્રમાણભૂત ઇનપુટમાંથી આદેશો વાંચો (કોઈ ફાઇલ દલીલો હાજર ન હોય તો આપમેળે સેટ કરો) આ વિકલ્પનો કોઈ અસર થતો નથી જ્યારે શેલને પહેલેથી જ શરૂ કરવાનું શરૂ થઈ જાય પછી (એટલે ​​કે સેટ સાથે (1)).

-વી વી

બિલ્ટ-ઇન vi (1) આદેશ વાક્ય સંપાદકને સક્ષમ કરો (અક્ષમ કરે છે - જો તે સેટ કરેલું છે).

-એ ઇમૅક્સ

બિલ્ટ-ઇન ઇએક્સ્સ (1) આદેશ વાક્ય સંપાદકને સક્ષમ કરો (અક્ષમ કરે છે - V જો તે સેટ કરવામાં આવેલ હોય).

-b સૂચિત કરો

પૃષ્ઠભૂમિની નોકરીની સમાપ્તિની અસુમેળ સૂચનાને સક્ષમ કરો. (4.4alpha માટે અનિશ્ચિત)

લેક્સિકલ માળખું

શેલ ફાઇલમાંથી લીટીઓના દ્રષ્ટિએ ઇનપુટ વાંચે છે અને તેને સફેદ જગ્યા (બ્લેન્ક્સ અને ટૅબ્સ) પર અને શબ્દોમાં ચોક્કસ સિક્વન્સમાં તોડે છે જે `` ઓપરેટર્સ 'નામના શેલ માટે વિશિષ્ટ હોય છે' ઓપરેટરોનાં બે પ્રકારો છે: નિયંત્રણ ઓપરેટરો અને પુનર્નિર્દેશન ઓપરેટરો (તેમના અર્થ પછી ચર્ચા કરવામાં આવે છે). નીચેના ઓપરેટરોની સૂચિ છે:

"નિયંત્રણ ઓપરેટર્સ:"

&& (); ;; | ||

"રીડાયરેક્શન ઓપરેટર:"

<>> | << >> <&> & << - <>

ક્વોટિંગ

શેલમાં ચોક્કસ અક્ષરો અથવા શબ્દોનો વિશિષ્ટ અર્થ, જેમ કે ઓપરેટર્સ, વ્હાઇટસ્પેસ અથવા કીવર્ડ્સને દૂર કરવા માટે ક્વોટિંગનો ઉપયોગ કરવામાં આવે છે. ક્વોટિંગ ત્રણ પ્રકારના હોય છે: મેળ ખાતી સિંગલ ક્વોટ્સ, ડબલ અવતરણ ચિહ્ન અને બેકસ્લેશ.

બેકસ્લેશ

એક નવી લીટીના અપવાદ સિવાય બેકસ્લેશ, નીચેના અક્ષરનો શાબ્દિક અર્થ સાચવે છે. એક નવી નવી લાઈન આગળના બેકસ્લેશને લીટી ચાલુ તરીકે ગણવામાં આવે છે.

સિંગલ ક્વોટ્સ

એક જ અવતરણચિહ્નોમાં અક્ષરોને બંધ કરવાથી તમામ પાત્રોના શાબ્દિક અર્થને સાચવવામાં આવે છે (સિંગલ અવતરણ સિવાય, સિંગલ-અવતરણચિત્રોને સિંગલ કોટેડ શબ્દમાળામાં મૂકી શકાય તેવું અશક્ય છે).

ડબલ અવતરણ

બેવડા અવતરણમાં અક્ષરોને બંધબેસતા ડોલરના ($) બેકક્વોટ (`) અને બેકસ્લેશ સિવાયના બધા અક્ષરોનો શાબ્દિક અર્થ સાચવે છે (\) બેવડા અવતરણમાં બેકસ્લેશ એ ઐતિહાસિક રીતે વિચિત્ર છે, અને ફક્ત નીચેના અક્ષરોને ઉદ્ધત કરવા માટે કરે છે:

$ `\

નહિંતર તે શાબ્દિક રહે છે

અનામત શબ્દો

અનામત શબ્દો એવા શબ્દો છે કે જે શેલને વિશિષ્ટ અર્થ ધરાવે છે અને એક લીટીની શરૂઆતમાં અને નિયંત્રણ ઑપરેટર પછી ઓળખાય છે. નીચેના અનામત શબ્દો છે:

! તા એલિફ તા

તા તા પછી તા (તા)

તા તા દ્વારા તા કરવામાં આવે તો તા esac

તેમના અર્થ પાછળથી ચર્ચા કરવામાં આવે છે.

ઉપનામો

ઉપનામ એ ઉપનામ (1) બિલ્ટિન કમાન્ડનો ઉપયોગ કરીને નામ અને અનુરૂપ મૂલ્ય સમૂહ છે. જ્યારે પણ આરક્ષિત શબ્દ આવી શકે છે (ઉપર જુઓ), અને અનામત શબ્દો માટે તપાસ કર્યા પછી, શેલ શબ્દને ચકાસે છે તે જોવા માટે જો તે ઉપનામ સાથે મેળ ખાય છે. જો તે કરે છે, તો તે તેની કિંમત સાથે ઇનપુટ સ્ટ્રીમમાં તેને બદલે છે. ઉદાહરણ તરીકે, જો ત્યાં '`એલએફ -એફ' 'નામની ઉપનામ છે જે'` એલએસ -એફ '' ની કિંમત સાથે છે તો ઇનપુટ:

lf foobar

બની જશે

ls -F foobar

ઉપેક્ષિત વપરાશકર્તાઓને દલીલો સાથે કાર્ય કેવી રીતે બનાવવું તે શીખવા વગર કમાન્ડ માટે શેલ્થઆન્ડ બનાવવા માટે અનુકૂળ રીત પ્રદાન કરે છે. તેનો ઉપયોગ કંટાળાજનક અસ્પષ્ટ કોડ બનાવવા માટે થઈ શકે છે. આ ઉપયોગ નિરુત્સાહ છે.

આદેશો

શેલ ભાષાના આધારે વાંચતા શબ્દોને અર્થઘટન આપે છે, જેનું સ્પષ્ટીકરણ આ મેન પેજની બહાર છે ( POSIX 1003.2 દસ્તાવેજમાં BNF નો સંદર્ભ લો). અનિવાર્યપણે છતાં, એક લીટી વાંચી છે અને જો રેખાના પ્રથમ શબ્દ (અથવા કંટ્રોલ ઓપરેટર પછી) આરક્ષિત શબ્દ નથી, તો શેલે સરળ આદેશ ઓળખ્યો છે. નહિંતર, એક જટિલ આદેશ અથવા અમુક અન્ય ખાસ રચનાને ઓળખવામાં આવી હશે.

સરળ આદેશો

જો સરળ આદેશ ઓળખાય છે, શેલ નીચેની ક્રિયાઓ કરે છે:

  1. `` નામ = મૂલ્ય '' ફોર્મની અગ્રણી શબ્દો તોડવામાં આવે છે અને સરળ આદેશના પર્યાવરણને સોંપવામાં આવે છે. પુનર્નિર્દેશન ઓપરેટરો અને તેમની દલીલો (નીચે વર્ણવ્યા પ્રમાણે) બંધ કરવામાં આવે છે અને પ્રક્રિયા માટે સાચવવામાં આવે છે.
  2. બાકીના શબ્દો `` એક્સપન્સન્સ '' નામના વિભાગમાં વર્ણવ્યા પ્રમાણે વિસ્તૃત થાય છે અને પ્રથમ બાકીના શબ્દને કમાન્ડ નામ ગણવામાં આવે છે અને આદેશ સ્થિત થયેલ છે. બાકીના શબ્દોને આદેશની દલીલો ગણવામાં આવે છે. જો કોઈ આદેશ નામનું પરિણામ ન મળ્યું હોય, તો આઇટમ 1 માં માન્ય `` નામ = કિંમત '' વેરિયેબલ અસાઇનમેન્ટ વર્તમાન શેલને અસર કરે છે
  3. આગલા વિભાગમાં વર્ણવ્યા પ્રમાણે પુનર્નિર્દેશન કરવામાં આવે છે.

રીડાયરેક્શન્સ

રીડિરેક્શનનો ઉપયોગ તેના ઇનપુટ વાંચે છે અથવા તેના આઉટપુટને મોકલે છે તે બદલવા માટે વપરાય છે. સામાન્ય રીતે, ફાઇલમાં અસ્તિત્વમાંના સંદર્ભને રીડિરેક્શન્સ ખોલો, બંધ અથવા ડુપ્લિકેટ કરે છે. પુનર્નિર્દેશન માટે વપરાતા એકંદર બંધારણ એ છે:

[n] રીડીર-ઓપ ફાઇલ

જ્યાં રિડીયર-ઓપ ફરી ઉલ્લેખિત ઓપરેટો પૈકી એક છે, તે પહેલાં ઉલ્લેખ કર્યો છે. નીચેના શક્ય પુનઃનિર્દેશોની યાદી છે. બકિ n એ એક વૈકલ્પિક નંબર છે, જેમ કે `3 '(નહી' Bq 3 'કે જે ફાઇલ વર્ણનકર્તાને દર્શાવે છે.

[n]> ફાઇલ

ફાઇલમાં માનક આઉટપુટ (અથવા n) પુનઃનિર્દેશિત કરો

[n]> | ફાઈલ

જ, પરંતુ - C વિકલ્પને ઓવરરાઇડ કરો.

[n] >> ફાઇલ

ફાઇલમાં માનક આઉટપુટ (અથવા n) ઉમેરો

[n] <ફાઇલ

ફાઈલમાંથી સ્ટાન્ડર્ડ ઇનપુટ (અથવા એન) રીડાયરેક્ટ કરો.

[n1] <અને n2

ફાઈલ ડિસ્ક્રીપ્ટર n2 થી પ્રમાણભૂત ઇનપુટ (અથવા n1) નું ડુપ્લિકેટ.

[n] <અને -

માનક ઇનપુટ બંધ કરો (અથવા n).

[n1]> & n2

N2 થી પ્રમાણભૂત આઉટપુટ (અથવા n1) નું ડુપ્લિકેટ.

[n]> & -

માનક આઉટપુટ બંધ કરો (અથવા n).

[n] <> ફાઇલ

પ્રમાણભૂત ઇનપુટ (અથવા n) પર વાંચન અને લખવા માટે ફાઇલ ખોલો.

નીચેના પુનર્નિર્દેશનને ઘણી વખત `` અહીં-દસ્તાવેજ '' કહેવામાં આવે છે.

[n] << વિભાજક

અહીં-દસ્તાવેજ-ટેક્સ્ટ ...

સીમાંક

સીમાચિહ્ન સુધી ક્રમિક લાઇનો પરના તમામ ટેક્સ્ટને દૂર રાખવામાં આવે છે અને પ્રમાણભૂત ઇનપુટ, અથવા ફાઇલ વર્ણનકર્તા પર કમાન્ડ માટે ઉપલબ્ધ કરવામાં આવે છે જો તે સ્પષ્ટ થયેલ હોય. જો પ્રારંભિક વાક્ય પર નિર્દિષ્ટ કરેલો સીલિમીટર નોંધાયેલા છે, તો અહીં-ડોક-ટેક્સ્ટને શાબ્દિક રીતે ગણવામાં આવે છે, નહીં તો પાઠ્ય પેરામીટ વિસ્તરણ, આદેશ સ્થાનાંતરણ અને અંકગણિત વિસ્તરણને આધારે (`` વિસ્તરણ પરના વિભાગમાં વર્ણવ્યા મુજબ) '' 'જો ઑપરેટર `` << -' 'ને બદલે `` <<' 'છે તો અહીં-ડોક-ટેક્સ્ટમાં અગ્રણી ટૅબ્સ તોડવામાં આવે છે.

શોધો અને અમલ

ત્રણ પ્રકારના આદેશો છે: શેલ ફંક્શન્સ, આંતરિક આદેશો, અને સામાન્ય પ્રોગ્રામ્સ - અને તે ક્રમમાં તે (નામ દ્વારા) માટે આદેશ શોધે છે. તેઓ દરેકને અલગ રીતે ચલાવવામાં આવે છે.

જ્યારે શેલ ફંક્શન ચલાવવામાં આવે છે, ત્યારે તમામ શેલ સ્થાયી પરિમાણો ($ 0 સિવાય, જે અપરિવર્તિત રહે છે) શેલ ફંક્શનની દલીલો પર સેટ છે ચલો જે સ્પષ્ટપણે આદેશના પર્યાવરણમાં મૂકવામાં આવે છે (ફંક્શન નામની પહેલા તેમને સોંપણીઓ આપીને) કાર્ય માટે સ્થાનિક બનાવવામાં આવે છે અને તે આપેલ મૂલ્યો પર સેટ છે. પછી કાર્યની વ્યાખ્યામાં આપવામાં આવેલી આદેશ ચલાવવામાં આવે છે. જ્યારે આદેશ પૂર્ણ થાય ત્યારે સ્થાયી પરિમાણો તેમની મૂળ મૂલ્યો પર પુનઃસ્થાપિત થાય છે. આ બધા વર્તમાન શેલ અંદર થાય છે

શેલ બિલ્ડિન્સને શેલમાં આંતરિક રીતે ચલાવવામાં આવે છે, નવી પ્રક્રિયાની રચના કર્યા વગર.

નહિંતર, જો આદેશ નામ કાર્ય અથવા બિલ્ટિનથી મેળ ખાતો નથી, તો આદેશ ફાઇલસિસ્ટમમાંના સામાન્ય પ્રોગ્રામ તરીકે શોધવામાં આવે છે (આગળના વિભાગમાં વર્ણવ્યા પ્રમાણે). જ્યારે એક સામાન્ય પ્રોગ્રામ ચલાવવામાં આવે છે, ત્યારે શેલ પ્રોગ્રામ ચલાવે છે, દલીલો અને પ્રોગ્રામમાં પર્યાવરણ પસાર કરે છે. જો કાર્યક્રમ સામાન્ય એક્ઝેક્યુટેબલ ફાઇલ નથી (એટલે ​​કે, જો તે "મેજિસ નંબર" સાથે પ્રારંભ થતું નથી, જેનું ASCII પ્રતિનિધિત્વ "#!" છે, તેથી execve (2) પછી Er ENOEXEC પરત કરે છે) શેલ પ્રોગ્રામ subshell બાળ શેલ પોતે આ કિસ્સામાં ફરી શરૂ કરશે, જેથી અસર એવી હશે જે એડ-હોક શેલ સ્ક્રિપ્ટને હેન્ડલ કરવા માટે એક નવી શેલ બોલાવવામાં આવી હતી, સિવાય કે પિતૃ શેલમાં સ્થિત હેશ્ડ આદેશોનું સ્થાન તેને યાદ રાખશે. બાળક.

નોંધ કરો કે આ દસ્તાવેજના પહેલાનાં સંસ્કરણો અને સ્રોત કોડ પોતે ગેરમાર્ગે દોરે છે અને છુટાછવાયા એક શેલ સ્ક્રિપ્ટને "શેલ પ્રક્રિયા" તરીકે મેજિક નંબર વગર નો સંદર્ભ આપે છે.

પાથ શોધ

આદેશને શોધતી વખતે, શેલને તે જોવાનું દેખાય છે કે તે નામ દ્વારા શેલ કાર્ય છે. પછી તે નામ દ્વારા આંતરિક આદેશ માટે જુએ છે બિલ્ટિન આદેશ મળતો ન હોય તો, બે વસ્તુઓમાંથી એક બને છે:

  1. સ્લેશ ધરાવતો આદેશ નામો ફક્ત કોઈ પણ શોધ કર્યા વિના ચલાવવામાં આવે છે
  2. શેલ આદેશ માટે પાથે (PATH) માં દરેક એન્ટ્રીને શોધે છે. પાથની વેરિયેબલનું મૂલ્ય કોલોન દ્વારા અલગ થયેલ એન્ટ્રીઝની શ્રેણી હોવી જોઈએ. દરેક પ્રવેશમાં ડિરેક્ટરીનું નામ છે. હાલની ડિરેક્ટરી ખાલી ડિરેક્ટરી નામ દ્વારા, અથવા સ્પષ્ટ રીતે એક જ અવધિ દ્વારા દર્શાવવામાં આવી શકે છે.

આદેશ બહાર નીકળો સ્થિતિ

દરેક આદેશની બહાર નીકળો સ્થિતિ છે જે અન્ય શેલ આદેશોના વર્તનને પ્રભાવિત કરી શકે છે. નમૂનારૂપ એ છે કે આદેશ સામાન્ય અથવા સફળતા માટે શૂન્ય સાથે બંધ થાય છે, અને નિષ્ફળતા, ભૂલ અથવા ખોટા સંકેત માટે બિન-શૂન્ય છે. દરેક કમાન્ડ માટેનો મેન પેજ વિવિધ બહાર નીકળો કોડ અને તેનો અર્થ શું છે તે દર્શાવવું જોઈએ. વધારામાં, બિલ્ટિન આદેશો એક્ઝિટ કોડ્સ પરત કરે છે, જેમ કે એક્ઝીક્યુટેડ શેલ ફંક્શન.

જટિલ આદેશો

જટિલ આદેશો નિયંત્રણ ઓપરેટરો અથવા આરક્ષિત શબ્દો સાથે સરળ આદેશોની સંયોજનો છે, એકસાથે મોટા સંકુલ આદેશ બનાવીને. વધુ સામાન્ય રીતે, નીચેનો એક આદેશ છે:

જ્યાં સુધી અન્યથા જણાવવામાં ન આવે ત્યાં સુધી, આદેશની બહાર નીકળો સ્થિતિ એ આદેશ દ્વારા ચલાવવામાં આવતી છેલ્લી સરળ આદેશ છે.

પાઇપલાઇન્સ

પાઇપલાઇન એ એક અથવા વધુ આદેશોનો ક્રમ છે જે નિયંત્રણ ઑપરેટર | દ્વારા અલગ છે. તમામની છેલ્લી કમાન્ડની પ્રમાણભૂત આઉટપુટ આગામી આદેશના સ્ટાન્ડર્ડ ઇનપુટ સાથે જોડાયેલ છે. છેલ્લા આદેશનો સ્ટાન્ડર્ડ આઉટપુટ સામાન્ય રીતે, શેલમાંથી વારસામાં મળે છે.

પાઇપલાઇન માટેનો ફોર્મેટ છે:

[!] કમાન્ડ 1 [| કમાન્ડ 2 ...]

આદેશ 1 નું પ્રમાણભૂત આઉટપુટ આદેશ 2 ના પ્રમાણભૂત ઇનપુટ સાથે જોડાયેલું છે. કમાન્ડનો ભાગ છે તે રીડાયરેક્શન ઓપરેટર્સ દ્વારા ઉલ્લેખિત કોઈપણ પુનર્નિર્દેશન પહેલાં પ્રમાણભૂત ઇનપુટ, સ્ટાન્ડર્ડ આઉટપુટ અથવા બંને બૉક્સ પાઇપલાઇન દ્વારા અસાઇન કરવામાં આવે તેવું માનવામાં આવે છે.

જો પાઇપલાઇન પૃષ્ઠભૂમિમાં નથી (પછી ચર્ચા કરવામાં આવે છે), તો શેલ પૂર્ણ થવા માટેના તમામ આદેશો માટે રાહ જુએ છે.

જો અનામત શબ્દ! પાઇપલાઇન પહેલાં નથી, બહાર નીકળો સ્થિતિ પાઇપલાઇનમાં સ્પષ્ટ થયેલ છેલ્લા આદેશની બહાર નીકળો સ્થિતિ છે. નહિંતર, બહાર નીકળો સ્થિતિ છેલ્લી આદેશની બહાર નીકળવાની સ્થિતિની લોજિકલ નોટ નથી. એટલે કે, જો છેલ્લો આદેશ શૂન્ય પાછો આપે છે, તો બહાર નીકળો સ્થિતિ 1 છે; જો છેલ્લું આદેશ શૂન્ય કરતાં મોટો વળતર આપે તો, બહાર નીકળો સ્થિતિ શૂન્ય છે.

કારણ કે પ્રમાણભૂત ઇનપુટ અથવા સ્ટાન્ડર્ડ આઉટપુટની પાઇપલાઇન સોંપણી અથવા બંને રીડિરેક્શન પહેલાં થાય છે, તે રીડાયરેક્શન દ્વારા સુધારી શકાય છે. દાખ્લા તરીકે:

$ આદેશ 1 2> & 1 | કમાન્ડ 2

આદેશ 2 ની સ્ટાન્ડર્ડ ઇનપુટ માટે કમાન્ડ 1 ની સ્ટાન્ડર્ડ આઉટપુટ અને સ્ટાન્ડર્ડ એરર બંને મોકલે છે.

એ; અથવા ટર્મીનેટર ક્રમશઃ ચલાવવા માટે અગાઉના AND-OR- સૂચિ (આગળ વર્ણવેલા) નું કારણ બને છે; પૂર્વવર્તી AND-OR- સૂચિના અસુમેળ અમલ માટે અને તેના માટે જવાબદાર છે.

નોંધ કરો કે કેટલાક અન્ય શેલોથી વિપરીત, પાઇપલાઇનમાંની દરેક પ્રક્રિયા એ ઇન્વોકિંગ શેલનો બાળક છે (જ્યાં સુધી તે શેલ બિલ્ટિન નથી, તે સ્થિતિમાં તે હાલના શેલમાં કાર્ય કરે છે - પણ તે પર્યાવરણ પર કોઈ અસર થઈ છે).

પૃષ્ઠભૂમિ આદેશો -

જો કંટ્રોલ કંટ્રોલ ઓપરેટર એમ્પરસેંડ (&) દ્વારા સમાપ્ત થાય છે, તો શેલ અસુમેળ આદેશ ચલાવે છે - એટલે કે, શેલ આગામી આદેશ ચલાવવા પહેલાં સમાપ્ત કરવા માટે આદેશને રાહ નથી કરતું.

પૃષ્ઠભૂમિમાં આદેશ ચલાવવા માટેનું બંધારણ છે:

કમાન્ડ 1 અને [કમાન્ડ 2 અને ...]

જો શેલ અરસપરસ નથી, તો અસુમેળ આદેશનો પ્રમાણભૂત ઇનપુટ / dev / null પર સુયોજિત થયેલ છે

સૂચિ - સામાન્ય રીતે બોલતા

સૂચિ શૂન્ય અથવા વધુ આદેશોની શ્રેણી છે જે નવી લાઇનો, અર્ધવિરામ, અથવા એમ્પરસન્ડ્સ દ્વારા અલગ છે, અને વૈકલ્પિક રીતે આ ત્રણેય અક્ષરોમાંથી એક દ્વારા સમાપ્ત થાય છે. સૂચિમાંના આદેશો ક્રમમાં લખવામાં આવે છે. જો આદેશ એપર્સસેન્ડ દ્વારા અનુસરવામાં આવે છે, શેલ આદેશ શરૂ કરે છે અને તરત જ આગળના આદેશ પર આગળ વધો; નહિંતર તે આગામી એક પર પ્રક્રિયા કરવા પહેલાં આદેશ સમાપ્ત કરવા માટે રાહ જુએ છે.

લઘુ સર્કિટ યાદી ઓપરેટર્સ

`` અને & '' અને `` `'' એ AND-OR સૂચિ ઑપરેટર્સ છે. `` && '' પ્રથમ કમાન્ડ એક્ઝેક્યુટ કરે છે, અને પછી બીજી કમાન્ડ એક્ઝેક્યુટ કરે છે iff પ્રથમ કમાન્ડની એક્ઝિટ સ્ટેટમેન્ટ શૂન્ય છે. `` || '' સમાન છે, પરંતુ બીજી કમાન્ડ એક્ઝેક્યુટ કરે છે iff પ્રથમ કમાન્ડની એક્ઝિટ સ્ટેટમેન્ટ બિનજરૂરી છે. `` અને & '' અને `` `'' બંને પાસે સમાન અગ્રતા છે

ફ્લો-કન્ટ્રોલ કન્સ્ટ્રક્ટ્સ - જો, જ્યારે, માટે, કેસ

If આદેશ ની વાક્યરચના છે

જો યાદી
પછી યાદી
[એલિફ લિસ્ટ
પછી યાદી] ...
[બીજું સૂચિ]
ફાઇ

જ્યારે આદેશનું વાક્યરચના છે

જ્યારે સૂચિ
સૂચિ બનાવો
કર્યું

બે યાદીઓ વારંવાર ચલાવવામાં આવે છે જ્યારે પ્રથમ સૂચિની બહારની સ્થિતિ શૂન્ય છે. જ્યાં સુધી આદેશ સમાન ન હોય, પરંતુ શબ્દની જગ્યાએ ત્યાં સુધી શબ્દ છે, જે તેને પ્રથમ વારની બહાર નીકળવાની સ્થિતિ શૂન્ય સુધી પુનરાવર્તન કરવાની કારણ આપે છે.

માટે આદેશ માટે વાક્યરચના છે

શબ્દમાં ચલ માટે ...
સૂચિ બનાવો
કર્યું

શબ્દો વિસ્તૃત થાય છે, અને પછી યાદી વારંવાર ચલ સમૂહ સાથે બદલામાં દરેક શબ્દ પર ચલાવવામાં આવે છે. કરવું અને કર્યું `` {'' અને ``} '' સાથે બદલી શકાય છે.

બ્રેકનું વાક્યરચના અને ચાલુ આદેશ છે

બ્રેક [સંખ્યા]
[num] ચાલુ રાખો

બ્રેક જ્યારે અંદરની તરફ અથવા તો આંટીઓ બંધ કરે છે આગળની લૂપના આગામી પુનરાવૃત્તિ સાથે ચાલુ રહે છે. આ આંતરિક આદેશો તરીકે અમલમાં આવ્યાં છે

કેસ કમાન્ડનું વાક્યરચના એ છે

કેસમાં શબ્દ
પેટર્ન) યાદી ;;
...
ઇસાક

આ પેટર્ન વાસ્તવમાં એક અથવા વધુ દાખલાઓ હોઈ શકે છે (શેલ દાખલાઓ પાછળથી વર્ણવેલ છે), `` '' અક્ષરો દ્વારા અલગ.

ગ્રુપિંગ કમાન્ડ્સ સાથે

આદેશો ક્યાં તો લખીને જૂથિત કરી શકાય છે

(યાદી)

અથવા

{ યાદી;

આમાંના એક subshell માં આદેશો એક્ઝેક્યુટ કરે છે. આંતરિક (યાદી) માં જૂથ થયેલ આદેશો વર્તમાન શેલ અસર કરશે નહિં. બીજો ફોર્મ બીજો શેલ નથી બનાવતો તેથી સહેજ વધુ કાર્યક્ષમ છે. ગ્રુપિંગ કમાન્ડ્સ એકસાથે આ રીતે તમને તેમના આઉટપુટને રીડાયરેક્ટ કરવા દે છે તેમ છતાં તે એક પ્રોગ્રામ છે:

{printf હેલો; પ્રિન્ટફ વિશ્વ \ n ";}> શુભેચ્છા

કાર્યો

ફંક્શનની વ્યાખ્યાની વાક્યરચના એ છે

name () આદેશ

કાર્યની વ્યાખ્યા એક્ઝેક્યુટેબલ સ્ટેટમેન્ટ છે; જ્યારે તેને એક્ઝેક્યુટ કરવામાં આવે છે ત્યારે નામ નામના વિધેયને સ્થાપિત કરે છે અને શૂન્યની બહાર નીકળો સ્થિતિ પાછો આપે છે. આદેશ સામાન્ય રીતે `` {'' અને ``} '' વચ્ચેનો એક સૂચિ છે

સ્થાનિક આદેશનો ઉપયોગ કરીને ચલોને કાર્ય કરવા માટે સ્થાનિક તરીકે જાહેર કરી શકાય છે. આ ફંક્શનનાં પ્રથમ સ્ટેટમેન્ટ તરીકે દેખાશે, અને વાક્યરચના છે

સ્થાનિક [ચલ | -] ...

સ્થાનિકને બિલ્ટિન આદેશ તરીકે લાગુ કરવામાં આવે છે.

જ્યારે વેરિયેબલ સ્થાનિક બને છે, તે પ્રારંભિક મૂલ્યને બોલાવે છે અને આસપાસના અવકાશમાં સમાન નામ સાથે વેરીએબલમાંથી નિકાસ અને વાંચવા માટેના ફ્લેગનો ઉપયોગ કરે છે, જો કોઈ એક હોય. નહિંતર, ચલ શરૂઆતમાં અનસેટ છે. શેલ ગતિશીલ સ્ક્રિપિંગનો ઉપયોગ કરે છે, જેથી જો તમે વેરિયેબલ x ને ફંક્શનમાં કાર્ય કરવા માટે કરો, જે પછી કાર્ય કરે છે, જયારે વેરિયેબલ x ની અંદર બનેલી હોય તો તે ચલ x નો ઉલ્લેખ કરે છે, કે જે ગ્લોબલ વેરિયેબલ નામ એક્સ .

સ્થાનિક રીતે કરી શકાય તેવો એકમાત્ર વિશિષ્ટ પરિમાણ છે `` - '' કોઈપણ શેલ વિકલ્પો બનાવી રહ્યા છે જે ફંક્શનની પરત ફરે ત્યારે ફંક્શનમાં સેટ કમાન્ડ દ્વારા બદલાઈ જાય છે, જ્યારે તેમના મૂળ મૂલ્યોમાં પુનઃસ્થાપિત કરવામાં આવે છે.

વળતર આદેશનું વાક્યરચના છે

પરત [exitstatus

તે વર્તમાનમાં કાર્યરત કાર્ય સમાપ્ત કરે છે. રીટર્ન એ બિલ્ટિન કમાન્ડ તરીકે અમલ કરવામાં આવે છે.

ચલો અને પરિમાણો

શેલ પરિમાણો સમૂહ જાળવે છે. નામ દ્વારા સૂચવાયેલ પરિમાણને વેરિયેબલ કહેવાય છે. જ્યારે શરુ થાય છે, શેલ બધા પર્યાવરણીય ચલોને શેલ ચલોમાં ફેરવે છે. નવા ચલો ફોર્મનો ઉપયોગ કરીને સેટ કરી શકાય છે

નામ = કિંમત

વપરાશકર્તા દ્વારા સેટ કરેલ ચલો ફક્ત મૂળાક્ષરો, સંખ્યાઓ અને અંડરસ્કોર્સના નામ ધરાવતો એક નામ હોવો આવશ્યક છે - જેનું પ્રથમ આંકડાકીય નથી હોવું જોઈએ. એક પરિમાણને એક નંબર અથવા વિશિષ્ટ અક્ષર દ્વારા સૂચિત કરી શકાય છે જે નીચે વર્ણવેલ છે.

સ્થિતિકીય પરિમાણો

એક સ્થાયી પરિમાણ એક સંખ્યા (n> 0) દ્વારા સૂચિત પેરામીટર છે. શેલ આ શરૂઆતમાં તેના આદેશ વાક્ય દલીલોના મૂલ્યોને સુયોજિત કરે છે જે શેલ સ્ક્રિપ્ટનું નામ અનુસરતું હોય છે. સમૂહ (1) બિલ્ટિનનો ઉપયોગ તેમને સેટ અથવા ફરીથી સેટ કરવા માટે પણ થઈ શકે છે.

ખાસ પરિમાણો

વિશિષ્ટ પરિમાણ એ નીચેના વિશિષ્ટ અક્ષરો પૈકી એક દ્વારા સૂચિત કરાયેલ પરિમાણ છે. પેરામીટરનું મૂલ્ય તેની પાત્રની આગળ યાદી થયેલ છે

*

એકથી શરૂ થતાં સ્થાયી પરિમાણોને વિસ્તૃત કરો જયારે વિસ્તરણ ડબલ-ક્વોટ થયેલ શબ્દમાળામાં થાય છે ત્યારે તે એક ફીલ્ડમાં વિસ્તરે છે IFS વેરીએબલના પ્રથમ અક્ષર દ્વારા અલગ અથવા જો IFS અનસેટ છે તો દરેક પરિમાણીય કિંમત સાથે.

@

એકથી શરૂ થતાં સ્થાયી પરિમાણોને વિસ્તૃત કરો જ્યારે વિસ્તરણ ડબલ અવતરણની અંદર થાય છે, ત્યારે દરેક મુદતિક પરિમાણ અલગ દલીલ તરીકે વિસ્તરે છે. જો કોઈ સ્થાનીય પરિમાણો ન હોય તો, @ નું વિસ્તરણ શૂન્ય દલીલો પેદા કરે છે, જ્યારે @ ડબલ-ટાંકવામાં આવે છે. ઉદાહરણ તરીકે, આનો અર્થ શું છે જો $ 1 એ `` એબીસી '' છે અને $ 2 છે `` ડી.ટી.જી. '' તો પછી ક્વૉક્સ $ @ બે દલીલોને વિસ્તરે છે:

એબીસી ડેફ ગી

#

સ્થાનીય પરિમાણોની સંખ્યાને વિસ્તૃત કરો

?

સૌથી તાજેતરની પાઇપલાઇન ની બહાર નીકળો સ્થિતિ વિસ્તૃત.

- (હાઇફન.)

વર્તમાન વિકલ્પ ફ્લેગ (સિંગલ-લેટર વિકલ્પ નામો કે જે શબ્દમાળામાં સંકોચાયેલ છે) તરીકે વિસ્તૃત થયેલ છે, નિર્માણમાં નિર્ધારિત, સેટ બિલ્ડઇન કમાન્ડ દ્વારા અથવા શેલ દ્વારા સર્વથા.

$

ઇનકૉલ કરેલ શેલની પ્રક્રિયા ID ને વિસ્તૃત કરો. એક સબશેલ તેના માતાપિતા તરીકે $ ની સમાન મૂલ્ય જાળવી રાખે છે.

!

વર્તમાન શેલમાંથી ચલાવવામાં આવેલી સૌથી તાજેતરના પૃષ્ઠભૂમિ આદેશની પ્રક્રિયા ID ને વિસ્તૃત કરો. પાઇપલાઇન માટે, પ્રક્રિયા ID એ પાઇપલાઇનમાં છેલ્લી કમાન્ડ છે.

0 (ઝીરો.)

શેલ અથવા શેલ સ્ક્રિપ્ટનું નામ વિસ્તૃત કરો.

શબ્દ વિસ્તરણ

આ કલમ વિવિધ વિસ્તરણ વર્ણવે છે જે શબ્દો પર કરવામાં આવે છે. દરેક શબ્દ પર તમામ વિસ્તરણ કરવામાં આવતાં નથી, જેમ કે પછીથી સમજાવવામાં આવ્યું છે.

ટિલ્ડ વિસ્તરણ, પરિમાણ વિસ્તરણ, આદેશની ફેરબદલ, અંકગણિત વિસ્તરણ અને એક જ શબ્દમાં વિસ્તૃત એક શબ્દમાં ઉત્પન્ન થયેલા ક્વોટ રીમુવલ. તે માત્ર ફિલ્ડ સ્પ્લિટિંગ અથવા પથનામ વિસ્તરણ છે જે એક શબ્દથી બહુવિધ ક્ષેત્રો બનાવી શકે છે. આ નિયમનો એક અપવાદ એ છે કે ઉપરના વર્ણવેલ ડબલ-અવતરણ ચિહ્નમાં વિશિષ્ટ માપદંડ @ નું વિસ્તરણ છે.

શબ્દ વિસ્તરણનો ક્રમ છે:

  1. ટિલ્ડ વિસ્તરણ, પેરામીટર વિસ્તરણ, કમાન્ડ સબસ્ટિટ્યુશન, એરિથમેટિક વિસ્તરણ (આ બધા એક જ સમયે થાય છે).
  2. ક્ષેત્ર સ્પ્લિટિંગ પગલું (1) દ્વારા પેદા થયેલ ક્ષેત્રો પર કરવામાં આવે છે જ્યાં સુધી IFS વેરિયેબલ નલ નથી.
  3. પાથનામ વિસ્તરણ (જ્યાં સુધી સેટ - એફ અસરમાં નથી).
  4. ભાવ દૂર.

$ અક્ષર પરિમાણ વિસ્તરણ, આદેશ સ્થાનાંતરણ, અથવા અંકગણિત મૂલ્યાંકન રજૂ કરવા માટે વપરાય છે.

ટિલ્ડ વિસ્તરણ (વપરાશકર્તાની હોમ ડિરેક્ટરીને બદલીને)

એક ન જોડાયેલ ટિલ્ડે પાત્ર (~) સાથે શરૂ થતાં શબ્દને ટિલ્ડ વિસ્તરણને આધિન છે. સ્લેશ (/) અથવા શબ્દના અંત સુધીના બધા અક્ષરો યુઝરનેમ તરીકે ગણવામાં આવે છે અને તે વપરાશકર્તાની ઘર ડિરેક્ટરી સાથે બદલાય છે. જો વપરાશકર્તાનામ ખૂટે છે (~ / foobar માં) તો ટિલ્ડને HOME વેરીએબલ (વર્તમાન વપરાશકર્તાની હોમ ડિરેક્ટરી) ની કિંમત સાથે બદલવામાં આવે છે.

પેરામીટર વિસ્તરણ

પરિમાણ વિસ્તરણ માટેના બંધારણ નીચે મુજબ છે:

જ્યાં સમીકરણ બંધબેસતા ``} '' સુધી કોઈપણ અક્ષરોનું બનેલું છે '' કોઈપણ ``} '' બૅકસ્લેશ દ્વારા અથવા એક ટાંકવામાં આવેલ શબ્દમાળામાં ભાગી જાય છે, અને એમ્બેડેડ એરિથમેટિક વિસ્તરણ, કમાન્ડ રિપ્લેશન્સ અને વેરિયેબલ એક્સપાન્સન્સમાંના અક્ષરોની ચકાસણી કરવામાં આવે છે. મેચિંગ ``} ''

પરિમાણ વિસ્તરણ માટે સૌથી સરળ સ્વરૂપ છે:

મૂલ્ય, જો કોઈ હોય તો, પેરામીટરનો ઉપયોગ કરવામાં આવે છે.

પેરામીટર નામ અથવા પ્રતીક કૌંસમાં બંધ કરી શકાય છે, જે એકથી વધુ અંક સાથે સ્થાયી પરિમાણો સિવાય વૈકલ્પિક છે અથવા જ્યારે પરિમાણ એક અક્ષર દ્વારા અનુસરવામાં આવે છે જે નામના ભાગ તરીકે અર્થઘટન કરી શકાય છે. જો પરિમાણ વિસ્તરણ ડબલ અવતરણની અંદર થાય છે:

  1. વિસ્તરણના પરિણામો પર પાથનામને વિસ્તરણ કરવામાં આવતું નથી.
  2. @ અપવાદ સિવાય, વિસ્તરણના પરિણામો પર ફીલ્ડ સ્પ્લિટિંગ કરવામાં આવતું નથી.

વધુમાં, નીચેના બંધારણોમાંના એકનો ઉપયોગ કરીને પેરામીટર વિસ્તરણને સુધારી શકાય છે.

ડિફૉલ્ટ મૂલ્યોનો ઉપયોગ કરો જો પરિમાણ અનસેટ અથવા નલ હોય, તો શબ્દનો વિસ્તૃત સ્થાનારો છે; અન્યથા, પેરામીટરનું મૂલ્ય અવેજી છે.

ડિફૉલ્ટ મૂલ્યોને અસાઇન કરો જો પરિમાણ અનસેટ અથવા નલ હોય, તો શબ્દનો વિસ્તરણ પેરામીટરને સોંપવામાં આવે છે. બધા કિસ્સાઓમાં, પેરામીટરનું અંતિમ મૂલ્ય અવેજીમાં છે. માત્ર ચલો, સ્થાયી પરિમાણો અથવા વિશિષ્ટ પરિમાણો, આ રીતે સોંપવામાં આવી શકે છે.

નલ અથવા અનસેટ જો ભૂલ સૂચવો. જો પરિમાણ અનસેટ અથવા નલ હોય, તો શબ્દનો વિસ્તરણ (અથવા જો શબ્દને અવગણવામાં આવે તો તે સેટ ન થયેલ સંદેશો) પ્રમાણભૂત ભૂલમાં લખાયેલ છે અને શૅલ નોઝરોઓ બહાર નીકળો સ્થિતિ સાથે બહાર નીકળે છે નહિંતર, પરિમાણ મૂલ્ય અવેજી છે. ઇન્ટ્રેક્ટિવ શેલને બહાર નીકળવાની જરૂર નથી.

વૈકલ્પિક મૂલ્યનો ઉપયોગ કરો જો પેરામીટ અનસેટ અથવા નલ છે, નલ અવેજી છે; નહિંતર, શબ્દ વિસ્તરણ અવેજી છે.

અગાઉ દર્શાવેલ પેરામીટર એક્સપન્સમાં ફોર્મેટમાં કોલનનો ઉપયોગ અનસેટ અથવા નલ હોય તેવા પેરામીટરના પરીક્ષણમાં થાય છે; પેટર્ન માટેના પરીક્ષણમાં કોલનના પરિણામોનું પ્રમાણ માત્ર અનસેટ છે

શબ્દમાળા લંબાઈ પરિમાણના મૂલ્યના અક્ષરોમાં લંબાઈ.

પરિમાણ વિસ્તરણના નીચેના ચાર જાતો સબસ્ટ્રિંગ પ્રોસેસિંગ માટે પ્રદાન કરે છે. દરેક કિસ્સામાં, પેટર્ન મેચિંગ નોટેશન (શેલ પેટર્નસ જુઓ), નિયમિત સમીકરણના સંકેતને બદલે, દાખલાઓનું મૂલ્યાંકન કરવા માટે વપરાય છે જો પૅરમેન્ટ * અથવા @ છે, તો વિસ્તરણનું પરિણામ અસ્પષ્ટ છે. બેવડા અવતરણમાં સંપૂર્ણ પરિમાણ વિસ્તરણ શબ્દમાળાને બંધ કરવાથી નીચેના ચાર પ્રકારનાં પેટર્ન અક્ષરોનો ઉલ્લેખ થતો નથી, જ્યારે કૌંસમાં અક્ષરોનો ટાંકીને આ અસર છે.

નાના પ્રમાણ પેટર્ન દૂર કરો આ શબ્દ એક પેટર્ન પેદા કરવા માટે વિસ્તૃત છે પેરામીટર વિસ્તરણ પછી પરિમાણમાં પરિણમે છે, જેમાં પેટર્ન દ્વારા મેળ ખાતી પ્રત્યયની સૌથી નાનો ભાગ કાઢી નાખવામાં આવ્યો છે.

મોટા ભાગના પ્રત્યયના પેટર્ન દૂર કરો આ શબ્દ એક પેટર્ન પેદા કરવા માટે વિસ્તૃત છે પેરામીટર વિસ્તરણ પછી પરિમાણમાં પરિણમે છે, પેટર્ન દ્વારા મેળ ખાતી પ્રત્યયનો સૌથી મોટો ભાગ કાઢી નાખવામાં આવ્યો છે.

નાના ઉપસર્ગ પેટર્ન દૂર કરો. આ શબ્દ એક પેટર્ન પેદા કરવા માટે વિસ્તૃત છે પેરામીટર વિસ્તરણ પછી પરિમાણમાં પરિણમે છે, પેટર્ન દ્વારા મેળ ખાતી ઉપસર્ગનો સૌથી નાનો ભાગ કાઢી નાખવામાં આવ્યો છે.

સૌથી મોટા ઉપસર્ગ પેટર્ન દૂર કરો આ શબ્દ એક પેટર્ન પેદા કરવા માટે વિસ્તૃત છે પરિમાણ વિસ્તરણ પછી પરિમાણમાં પરિણમે છે, પેટર્ન દ્વારા મેળ ખાતી ઉપસર્ગનો સૌથી મોટો ભાગ કાઢી નાખવામાં આવ્યો છે

આદેશ અવેજીકરણ

કમાન્ડ રિપ્લેસમેન્ટ આદેશના નામની જગ્યાએ તેના સ્થાનાંતરિત કરવાના આદેશના આઉટપુટને પરવાનગી આપે છે. જ્યારે નીચે પ્રમાણે આદેશ જોડેલ હોય ત્યારે આદેશની બદલી થાય છે:

$ (કમાન્ડ)

અથવા પો `` બેકક્વોટ '' વર્ઝન પીસી:

`કમાન્ડ`

શેલ subshell પર્યાવરણમાં આદેશ ચલાવીને અને આદેશના પ્રમાણભૂત આઉટપુટ સાથે આદેશ અવેજીને સ્થાનાંતરિત કરીને અવેજીકરણના અંતે એક અથવા વધુ s ના સિક્વન્સને દૂર કરીને આદેશ અવેજીને વિસ્તરે છે. (આઉટપુટની સમાપ્તિ પહેલાં એન્ડેડ થયેલ <ન્યુલાઇન> ઓ, જોકે, ફિલ્ડ સ્પ્લિટિંગ દરમિયાન, તે s માં ભાષાંતર કરી શકાય છે, આઇએફએસના મૂલ્યને આધારે અને તે અસરકારક રીતે ટાંકતા હોય છે.)

અંકગણિત વિસ્તરણ

અંકગણિત વિસ્તરણ એ અંકગણિત અભિવ્યક્તિના મૂલ્યાંકન માટે એક પદ્ધતિ પૂરી પાડે છે અને તેનું મૂલ્ય બદલીને. અંકગણિત વિસ્તરણ માટેનો ફોર્મેટ નીચે પ્રમાણે છે:

$ ((અભિવ્યક્તિ))

અભિવ્યક્તિને માનવામાં આવે છે કે તે ડબલ-અવતરણમાં હતા, સિવાય કે સમીકરણની અંદર ડબલ-ક્વોટ વિશેષરૂપે વ્યવહાર કરવામાં આવતો નથી. શેલ પેરામીટર વિસ્તરણ, આદેશ સ્થાનાંતરણ અને ક્વોટ દૂર કરવાના અભિવ્યક્તિમાં તમામ ટોકન્સનો વિસ્તરણ કરે છે.

આગળ, શેલ આ અંકગણિત અભિવ્યક્તિ તરીકે વર્તે છે અને અભિવ્યક્તિની મૂલ્યને બદલી આપે છે.

વ્હાઇટ સ્પેસ સ્પ્લિટિંગ (ફીલ્ડ સ્પ્લિટીંગ)

પરિમાણ વિસ્તરણ પછી, આદેશ સ્થાનાંતરણ, અને અંકગણિત વિસ્તરણથી શેલ વિસ્તરણના પરિણામો અને અવેજીમાં સ્કેન કરે છે જે ક્ષેત્ર વિભાજન માટે ડબલ-અવતરણમાં થતી નથી અને બહુવિધ ક્ષેત્રો પરિણામ આપી શકે છે.

શેલ એ ડેલિમેટર તરીકે IFS ના દરેક અક્ષરને વર્તે છે અને ક્ષેત્રોમાં પરિમાણ વિસ્તરણ અને આદેશની અવેજીના પરિણામોને વિભાજિત કરવા માટે વિભાજકોનો ઉપયોગ કરે છે.

પાથનામ વિસ્તરણ (ફાઇલ નામ જનરેશન)

જ્યાં સુધી -f ફ્લેગ સેટ ન હોય ત્યાં સુધી, શબ્દ સ્પ્લિટિંગ પૂર્ણ થયા પછી ફાઈલ નામ બનાવટ કરવામાં આવે છે. દરેક શબ્દને સ્લેશ દ્વારા અલગ પાડવામાં આવેલા પેટર્નની શ્રેણી તરીકે જોવામાં આવે છે. વિસ્તરણની પ્રક્રિયા તમામ હાલની ફાઇલોના નામ સાથે શબ્દ બદલે છે, જેમના નામો દરેક પેટર્નને ચોક્કસ પેટર્ન સાથે મેળ ખાતી દ્વારા બદલીને બનાવી શકે છે. આના પર બે પ્રતિબંધો છે: પ્રથમ, પેટર્ન સ્લેશ ધરાવતી શબ્દમાળા સાથે મેળ ખાતી નથી, અને બીજું, પેટર્ન સમયગાળાથી શરૂ થતી શબ્દમાળા સાથે મેળ ખાતી નથી જ્યાં સુધી પેટર્નનો પહેલો અક્ષર અવધિ ન હોય. આગળના વિભાગ પાથનામ વિસ્તરણ અને કેસ (1) આદેશ બંને માટે ઉપયોગમાં લેવાતી પેટર્ન વર્ણવે છે.

શેલ દાખલાઓ

એક પેટર્ન સામાન્ય અક્ષરો ધરાવે છે, જે પોતાની મેળે અને મેટા-અક્ષરો ધરાવે છે. મેટા-અક્ષરો ``! '' `* ''` `? '' અને` `['' જો તેઓ નોંધાયેલા હોય તો આ અક્ષરો તેમના ખાસ અર્થ ગુમાવે છે જ્યારે આદેશ અથવા ચલ અવેજીકરણ કરવામાં આવે છે અને ડોલર સાઇન અથવા બેક ક્વોટ્સ ડબલ ટાંકવામાં આવતા નથી, તો વેરિયેબલનું મૂલ્ય અથવા આદેશનું આઉટપુટ આ અક્ષરો માટે સ્કેન કરવામાં આવ્યું છે અને તે મેટા-અક્ષરોમાં ફેરવાય છે.

ફૂદડી (`` * '') અક્ષરોની કોઈપણ સ્ટ્રિંગ સાથે મેળ ખાય છે. એક પ્રશ્ન ચિહ્ન કોઈપણ એક અક્ષર સાથે મેળ ખાય છે. ડાબા બ્રેકેટ (`` [''] એક અક્ષર વર્ગ રજૂ કરે છે. અક્ષર વર્ગનો અંત (``) '' દ્વારા દર્શાવવામાં આવે છે જો ``] '' ખૂટે છે તો '' ['' એક અક્ષર વર્ગ રજૂ કરવાને બદલે `` ['' '' સાથે મેળ ખાય છે. એક અક્ષર વર્ગ ચોરસ કૌંસ વચ્ચેના કોઈપણ અક્ષરો સાથે મેળ ખાય છે. એક બાદબાકી ચિહ્નનો ઉપયોગ કરીને અક્ષરોની શ્રેણી સ્પષ્ટ કરી શકાય છે. પાત્ર વર્ગના પ્રથમ અક્ષરને ઉદ્ગારવાચક બિંદુ બનાવીને પાત્ર વર્ગ પૂરક થઈ શકે છે.

એક અક્ષર વર્ગમાં ``] '' શામેલ કરવા માટે, તેને પ્રથમ અક્ષરની સૂચિ બનાવો (``! '' પછી જો કોઈ હોય તો) ઓછા સહીનો સમાવેશ કરવા માટે, તેને સૂચિબદ્ધ પ્રથમ અથવા છેલ્લો અક્ષર બનાવો

બિલ્ટિન્સ

આ વિભાગ આંતરિક આદેશો જે આંતરિક છે તે યાદી આપે છે કારણ કે તેમને કોઈ કાર્ય કરવાની જરૂર છે જે એક અલગ પ્રક્રિયા દ્વારા કરી શકાતી નથી. આ ઉપરાંત, કેટલાક અન્ય આદેશો કાર્યક્ષમતા માટે બાંધવામાં આવી શકે છે (દા.ત. ઇકો 1).

:

નલ કમાન્ડ જે 0 (સાચા) બહાર નીકળો મૂલ્ય આપે છે

. ફાઈલ

ચોક્કસ ફાઈલમાંના આદેશો શેલ દ્વારા વાંચી અને ચલાવવામાં આવે છે.

ઉપનામ [ નામ [ = સ્ટ્રિંગ ... ]]

જો name = string સ્પષ્ટ થયેલ હોય, તો શેલ ઉપનામ નામને મૂલ્ય સ્ટ્રિગ સાથે વ્યાખ્યાયિત કરે છે જો નામ સ્પષ્ટ થયેલ હોય, તો ઉપનામનું નામ છપાયેલું છે. કોઈ દલીલો નહીં, ઉપનામથી બાંધેલા બધા સૂચિત ઉપનામોના નામ અને મૂલ્યો છાપે છે (જુઓ અનલીયા)

બી.જી. [ જોબ] ...

બેકગ્રાઉન્ડમાં નિર્દિષ્ટ નોકરીઓ (અથવા હાલની નોકરી જો કોઈ જોબ્સ ન આપવામાં આવે તો) ચાલુ રાખો.

આદેશ આદેશ એઆરજી ...

સ્પષ્ટ આંતરિક આદેશ ચલાવો. (આ ઉપયોગી છે જ્યારે તમારી પાસે એક શૅલ ફંક્શન છે જે બિલ્ટઇન આદેશ તરીકે સમાન નામ છે.)

સીડી [ ડાયરેક્ટરી ]

નિર્દિષ્ટ નિર્દેશિકા (મૂળભૂત $ HOME) પર સ્વિચ કરો જો CDPATH માટેની નોંધણી cd આદેશના પર્યાવરણમાં દેખાય છે અથવા શેલ ચલ CDPATH સેટ કરેલ છે અને ડિરેક્ટરી નામ સ્લેશથી શરૂ થતું નથી, તો પછી CDPATH માં સૂચિબદ્ધ ડિરેક્ટરીઓ શોધી કાઢવામાં આવશે નિર્ધારિત ડિરેક્ટરી માટે. CDPATH નું ફોર્મેટ પાથની જેમ સમાન છે, એક ઇન્ટરેક્ટિવ શેલમાં, સીડી આદેશ તે ડિરેક્ટરીનું નામ છાપે છે જે તે વાસ્તવમાં સ્વિચ કરે છે જો તે વપરાશકર્તાના નામથી અલગ છે. આ અલગ હોઈ શકે છે કારણ કે CDPATH પદ્ધતિનો ઉપયોગ કરવામાં આવ્યો હતો અથવા કારણ કે સાંકેતિક લિંક ઓળંગી હતી.

eval શબ્દમાળા ...

જગ્યાઓ સાથે તમામ દલીલો સમાવિષ્ટ કરો. પછી ફરીથી પાર્સ અને આદેશ ચલાવો.

exec [ આદેશ આર્ગ ... ]

જ્યાં સુધી આદેશ અવગણવામાં ન આવે ત્યાં સુધી, શેલ પ્રક્રિયાને વિશિષ્ટ પ્રોગ્રામ સાથે બદલવામાં આવે છે (જે એક વાસ્તવિક પ્રોગ્રામ હોવો જોઈએ, શેલ બિલ્ટઇન અથવા ફંક્શન નહીં). Exec આદેશ પર કોઈપણ રીડાયરેક્શન્સ કાયમી તરીકે ચિહ્નિત થયેલ છે, તેથી તે exec આદેશ સમાપ્ત થાય ત્યારે પૂર્વવત્ નથી.

બહાર નીકળો [ exitstatus ]

શેલ પ્રક્રિયાને સમાપ્ત કરો જો exitstatus આપવામાં આવે તો તે શેલની બહાર નીકળો સ્થિતિ તરીકે ઉપયોગમાં લેવાય છે; નહિંતર પૂર્વવર્તી આદેશની બહાર નીકળો સ્થિતિ ઉપયોગમાં લેવાય છે.

નિકાસ નામ ...

નિકાસ -પી

ઉલ્લેખિત નામો નિકાસ કરવામાં આવે છે જેથી તેઓ અનુગામી આદેશોના પર્યાવરણમાં દેખાશે. ચલને અન-નિકાસ કરવાનો એકમાત્ર રસ્તો તે અનસેટ કરવા માટે છે. શેલ લખી દ્વારા નિકાસ કરવામાં આવે તે જ સમયે સુયોજિત કરવા માટે વેરિયેબલની કિંમતની મંજૂરી આપે છે

નિકાસ નામ = મૂલ્ય

કોઈ દલીલો વગર નિકાસ આદેશ બધા નિકાસ ચલો નામો યાદી આપે છે. --p વિકલ્પ દ્વારા સ્પષ્ટ થયેલ આઉટપુટ બિન-પૂછપરછવાળી ઉપયોગ માટે યોગ્ય રીતે ફોર્મેટ કરેલ હશે.

એફસી [- સંપાદક ] [ પ્રથમ [ છેલ્લું ]]

એફસી-એલ [- એનઆર ] [ પ્રથમ [ છેલ્લું ]]

એફસી -એસ [ જૂના = નવું ] [ પ્રથમ ]

એફસી બિલ્ટિન યાદીઓ, અથવા સંપાદનો અને ફરીથી એક્ઝેક્યુટ કરે છે, આદેશો પહેલાં અરસપરસ શેલમાં દાખલ થયો હતો.

-e સંપાદક

આદેશો સંપાદિત કરવા માટે સંપાદક દ્વારા નામના સંપાદકનો ઉપયોગ કરો. સંપાદક સ્ટ્રિંગ એ કમાન્ડ નામ છે, જે પાથે ( PATH) વેરિયેબલ દ્વારા શોધવા માટે છે. FCEDIT ચલમાંનું મૂલ્ય મૂળભૂત તરીકે વપરાય છે જ્યારે - e સ્પષ્ટ નથી. જો FCEDIT નલ અથવા અનસેટ છે, તો EDITOR વેરીએબલનું મૂલ્ય વપરાય છે. જો સંપાદક નલ અથવા અનસેટ છે, તો એડ (1) એ સંપાદક તરીકે ઉપયોગમાં લેવાય છે.

-એલ (ell)

તેમના પર એક એડિટરને ચલાવવાને બદલે આદેશોની સૂચિબદ્ધ કરો. આદેશો પ્રથમ અને છેલ્લી ઓપરેન્ડ્સ દ્વારા દર્શાવેલ અનુક્રમમાં લખવામાં આવે છે, કારણ કે આદેશ નંબર દ્વારા પહેલાની દરેક આદેશ સાથે અસર.

-ના

-l સાથે યાદી કરતી વખતે આદેશ નંબરોને દબાવો.

-આર

સૂચિબદ્ધ આદેશોનો ક્રમમાં ઉલટાવી (સાથે - l અથવા સંપાદિત (ન તો - l અને - સાથે )

-s

સંપાદકનો ઉપયોગ કર્યા વગર આદેશને ફરી ચલાવો.

પ્રથમ

છેલ્લા

યાદી અથવા સંપાદિત કરવા માટે આદેશો પસંદ કરો. અગાઉના આદેશોની સંખ્યા કે જેનો ઉપયોગ કરી શકાય છે HISTSIZE ચલના મૂલ્ય દ્વારા નક્કી કરવામાં આવે છે. પ્રથમ અથવા છેલ્લી અથવા બંનેનું મૂલ્ય નીચેનામાંથી એક છે:

[+] સંખ્યા

એક હકારાત્મક સંખ્યા જે આદેશ સંખ્યાને રજૂ કરે છે; આદેશ નંબરો - l વિકલ્પ સાથે પ્રદર્શિત કરી શકાય છે.

-નિબર

નકારાત્મક દશાંશ સંખ્યા જે આદેશની સંખ્યાને રજૂ કરે છે તે અગાઉ આદેશોની સંખ્યા ચલાવવામાં આવી હતી. ઉદાહરણ તરીકે, -1 તરત જ અગાઉના આદેશ છે.

શબ્દમાળા

તે સ્ટ્રિંગથી શરૂ થતી સૌથી તાજેતરમાં દાખલ કરેલ આદેશને સૂચવતી એક સ્ટ્રિંગ જો જૂના = નવા ઓપરેન્ડને - સાથે સ્પષ્ટ કરેલ ન હોય તો પ્રથમ ઓપરેન્ડના સ્ટ્રિંગ ફોર્મમાં એમ્બેડેડ સમાન સાઇન ન હોઈ શકે.

નીચેના પર્યાવરણ ચલો એ એફસીના અમલને અસર કરે છે:

FCEDIT

વાપરવા માટે સંપાદકનું નામ.

HISTSIZE

અગાઉના આદેશોની સંખ્યા જે સુલભ છે.

fg [ નોકરી ]

સ્પષ્ટ કરેલ નોકરી અથવા વર્તમાન નોકરીને ફોરગ્રાઉન્ડ પર ખસેડો.

ગેટપ્ટ્સ ઓપ્સ્ટ્રિંગ વેર

POSIX getopts કમાન્ડ, બેલ લેબ્સ- ડેરેડ ગેટોપ્ટ (1) સાથે ગેરસમજ ન થવી.

પ્રથમ દલીલ એ શ્રેણીબદ્ધ અક્ષરો હોવા જોઈએ, જેમાંથી દરેક વૈકલ્પિક રીતે કોલોન દ્વારા અનુસરવામાં આવે છે તે દર્શાવવા માટે વિકલ્પને દલીલની જરૂર છે. ઉલ્લેખિત ચલ વિશ્લેષિત વિકલ્પ પર સેટ છે

ગેટપ્ટ્સ કમાન્ડ જૂના getopt (1) ઉપયોગિતાને કારણે સફેદજગ્યા ધરાવતી દલીલોના હેન્ડલિંગને દૂર કરે છે.

ગેટપ્ટ્સ બિલ્ટિનનો ઉપયોગ પરિમાણોની સૂચિમાંથી વિકલ્પો અને તેમની દલીલો મેળવવા માટે થઈ શકે છે. જ્યારે બોલાવવામાં આવે છે, getopts યાદીમાં વિકલ્પ શબ્દમાળામાંથી var દ્વારા સ્પષ્ટ થયેલ શેલ ચલમાં અને તે અનુક્રમણિકાને શેલ ચલ OPTIND માં મૂકે છે જ્યારે શેલનો ઉપયોગ કરવામાં આવે છે, ત્યારે OPTIND 1 થી પ્રારંભ થાય છે. એક દલીલ, getopts builtin તે શેલ ચલ ઓપ્શનમાં મૂકવામાં આવશે OPTARG જો વિકલ્પ optstring માટે મંજૂરી નથી, પછી OPTARG અનસેટ આવશે.

optstring માન્ય વિકલ્પ અક્ષરો એક શબ્દમાળા છે. જો પત્રને કોલોન દ્વારા અનુસરવામાં આવે તો, વિકલ્પ એવી દલીલની અપેક્ષા રાખવામાં આવે છે કે જે તેને સફેદ જગ્યા દ્વારા અલગ અથવા અલગ ન કરી શકે. જો કોઈ વિકલ્પ પાત્ર ન મળે, જ્યાં અપેક્ષિત હોય, getopts ચલ વેરને ``? '' માં સ્થાનાંતરિત કરશે તો ગેટપ્ટ્સ પછી OPTARG ને અનસેટ કરશે અને પ્રમાણભૂત ભૂલ પર આઉટપુટ લખશે. ઑપ્સ્ટ્રેસિંગના પ્રથમ અક્ષર તરીકે કોલોનને ઉલ્લેખિત કરીને બધી ભૂલો અવગણવામાં આવશે.

જ્યારે છેલ્લો વિકલ્પ સમાપ્ત થાય છે ત્યારે નૉનઝોરો મૂલ્ય પરત કરવામાં આવે છે. જો ત્યાં કોઈ બાકી દલીલો નથી, તો ગેટપ્ટ્સે વિશિષ્ટ વિકલ્પ માટે var સેટ કરશે, `` - '' નહિંતર, તે var ને ``? '

નીચેના કોડ ટુકડો બતાવે છે કે કેવી રીતે કોઈ આદેશ માટે દલીલોની પ્રક્રિયા કરી શકે છે જે વિકલ્પો [a] અને [b] અને વિકલ્પ [c] લેશે જે દલીલની જરૂર છે.

જ્યારે ગેટપ્ટ્સ એબીસી: એફ
કરવું
કેસ $ એફ સાઇન
એ | બી) ધ્વજ = $ એફ ;;
c) carg = $ OPTARG ;;
\?) $ USAGE પડઘો; બહાર નીકળો 1 ;;
ઇસાક
કર્યું
shift 'expr $ OPTIND - 1`

આ કોડ નીચે આપેલ કોઈપણને સમકક્ષ તરીકે સ્વીકારશે:

cmd -acarg ફાઇલ ફાઇલ
cmd -a -c એજીઆર ફાઇલ ફાઇલ
cmd -carg -a ફાઇલ ફાઇલ
cmd -a -carg - ફાઇલ ફાઇલ

હેશ -આરવી આદેશ ...

શૅલ એક હેશ કોષ્ટક જાળવે છે જે આદેશોનાં સ્થાનોને યાદ રાખે છે. બિલકુલ કોઈ દલીલો નહીં, હેશ આદેશ આ કોષ્ટકની સામગ્રીને છાપે છે. છેલ્લી સીડી આદેશને ફૂદડી સાથે ચિહ્નિત કરાયા ત્યારથી જોવામાં આવ્યું ન હોય તેવી એન્ટ્રીઝ; આ એન્ટ્રીઓ અયોગ્ય હોવા માટે શક્ય છે.

દલીલો સાથે, હેશ આદેશ હેશ ટેબલમાંથી સ્પષ્ટ કરેલ આદેશોને દૂર કરે છે (જ્યાં સુધી તે કાર્ય નથી) અને પછી તેમને શોધી કાઢે છે. - v વિકલ્પ સાથે, હેશ આદેશોની સ્થાનો છાપે છે કારણ કે તે તેમને શોધે છે. -r વિકલ્પ હેશ આદેશને હેશ કોષ્ટકમાં બધી એન્ટ્રીઓને કાઢી નાખવા માટે કારણ આપે છે સિવાય કે કાર્યો.

નોકરી [ નોકરી ]

કાર્યમાં પ્રોસેસની પ્રક્રિયા ID છાપો. જો કામ દલીલ અવગણવામાં આવે છે, તો વર્તમાન નોકરી ઉપયોગ થાય છે.

નોકરીઓ

આ આદેશ તમામ શારીરિક પ્રક્રિયાઓની યાદી આપે છે જે વર્તમાન શેલ પ્રોસેસના બાળકો છે.

pwd

વર્તમાન ડિરેક્ટરી છાપો. બિલ્ટિન આદેશ એક જ નામના પ્રોગ્રામથી અલગ હોઇ શકે છે કારણ કે બિલ્ડીન કમાન્ડ યાદ રાખે છે કે વર્તમાન ડિરેક્ટર દરેક વખતે રિકોમ્પ્યુટિંગ કરતાં શું છે. આ તે ઝડપી બનાવે છે જો કે, જો વર્તમાન ડિરેક્ટરીનું નામ બદલવામાં આવ્યું હોય, તો પીડબલ્યુડીના આંતરિક વર્ઝન ડિરેક્ટરી માટે જૂના નામ છાપવાનું ચાલુ રાખશે.

[- P પ્રોમ્પ્ટ ] વાંચો [- R ] વેરિયેબલ ...

પ્રોમ્પ્ટ છપાય છે જો - p વિકલ્પ સ્પષ્ટ થયેલ છે અને પ્રમાણભૂત ઇનપુટ ટર્મિનલ છે. પછી પ્રમાણભૂત ઇનપુટમાંથી એક રેખા વાંચી શકાય છે. અનુગામી નવી લાઇન લીટીમાંથી કાઢી નાખવામાં આવે છે અને વાક્ય ઉપર વિભાજન શબ્દના વિભાગમાં વર્ણવ્યા પ્રમાણે વહેંચાય છે, અને ટુકડાઓ ચલોને ક્રમમાં ગોઠવવામાં આવે છે. ઓછામાં ઓછો એક વેરિયેબલ નિર્દિષ્ટ હોવું જોઈએ. જો વેરિયેબલ કરતાં વધુ ટુકડા છે, બાકીના ટુકડાઓ ( આઇએફએસમાં જે અક્ષરો અલગ પાડ્યા છે તે સાથે) છેલ્લા વેરિયેબલને સોંપવામાં આવે છે. જો ટુકડા કરતાં વધુ ચલો છે, બાકીના ચલોને નલ સ્ટ્રિંગ અસાઇન કરવામાં આવે છે. વાંચેલ બિલ્ટિન સફળતાને સૂચવે છે જ્યાં સુધી ઇનપુટ પર EOF ન આવે ત્યાં સુધી, જે કિસ્સામાં નિષ્ફળતા પાછી આવે છે.

મૂળભૂત રીતે, જો - r વિકલ્પ સ્પષ્ટ થયેલ નહિં હોય, તો બેકસ્લેશ `` \ '' એસ્કેપ અક્ષર તરીકે કામ કરે છે, જેના કારણે નીચેના અક્ષરને શાબ્દિક રીતે વર્તવામાં આવશે. જો બેકસ્લેશને નવી લાઇન દ્વારા અનુસરવામાં આવે છે, તો બેકસ્લેશ અને નવી લાઇન કાઢી નાખવામાં આવશે.

ફક્ત વાંચવા માટેનું નામ ...

ફક્ત વાંચવા-પી

ઉલ્લેખિત નામો ફક્ત વાંચવા તરીકે ચિહ્નિત થયેલ છે, જેથી તેઓ પછીથી સંશોધિત અથવા અનસેટ કરી શકાતા નથી. શેલ એ વેરિયેબલની વેલ્યુને તે જ સમયે સેટ કરવાની મંજૂરી આપે છે જે તેને ફક્ત લખવાથી ચિહ્નિત થયેલ છે

ફક્ત વાંચવા માટેનું નામ = મૂલ્ય

આ બોલ પર કોઈ દલીલો સાથે ફક્ત વાંચવા માટે આદેશ બધા વાંચી નામો માત્ર ચલો યાદી આપે છે. --p વિકલ્પ દ્વારા સ્પષ્ટ થયેલ આઉટપુટ બિન-પૂછપરછવાળી ઉપયોગ માટે યોગ્ય રીતે ફોર્મેટ કરેલ હશે.

[{- વિકલ્પો | + વિકલ્પો | - આર્ગ ... ]

સમૂહ આદેશ ત્રણ અલગ અલગ કાર્યો કરે છે.

કોઈ દલીલો વગર, તે તમામ શેલ ચલોના મૂલ્યોની સૂચિ આપે છે.

જો વિકલ્પો આપવામાં આવે છે, તો તે સ્પષ્ટ કરેલ વિકલ્પ ફ્લેગોને સુયોજિત કરે છે, અથવા તેમને Sx Argument List Processing નામના વિભાગમાં વર્ણવ્યા પ્રમાણે સાફ કરે છે.

સમૂહ આદેશનો ત્રીજો ઉપયોગ એ શેલના સ્થાયી પરિમાણોના મૂલ્યોને સ્પષ્ટ કરેલ દલીલોમાં સેટ કરવા છે. કોઈપણ વિકલ્પો બદલ્યા વિના સ્થાયી પરિમાણો બદલવા માટે, `` - '' નો ઉપયોગ કરવા માટે પ્રથમ દલીલ તરીકે સેટ કરો. જો કોઈ દલીલ હાજર ન હોય, તો સેટ કમાન્ડ તમામ પદાવલિ પરિમાણોને સાફ કરશે (`` પાછી $ # ચલાવવાની સમકક્ષ. ''

ચલ મૂલ્ય

વેરિયેબલ માટે વેલ્યુ અસાઇન કરે છે. (સામાન્ય રીતે, setvar setvar વાપરવાની જગ્યાએ વેરીએબલ = વેલ્યુ લખવા માટે તે વધુ સારું છે, જે ફંક્શનોમાં ઉપયોગમાં લેવાના હેતુ છે, જેમના નામો પરિમાણો તરીકે પસાર થાય છે.

પાળી [ n ]

સ્થાયી પરિમાણો n વખત Shift. પાળીએ $ 1 ની કિંમત $ 2 ની કિંમતને $ 2 ની કિંમત $ 3 ની કિંમત અને તેથી વધુ $ $ એકની કિંમત ઘટાડીને સુયોજિત કરે છે. જો સ્થાનીય પરિમાણોની સંખ્યા કરતાં એન વધારે છે, તો શિફ્ટ ભૂલ સંદેશો બહાર પાડશે અને પરત સ્થિતિ 2 સાથે બહાર નીકળશે.

વખત

શેલ માટે સંચિત વપરાશકર્તા અને સિસ્ટમ વખત છાપો અને શેલમાંથી ચાલતી પ્રક્રિયાઓ છાપો. પરત સ્થિતિ 0 છે

ટ્રેક્શન ક્રિયા સંકેત ...

શેલને વિશિષ્ટ સિગ્નલો મળે ત્યારે ક્રિયાને પાર્સ અને એક્ઝેક્યુટ કરવા માટેનું કારણ બનાવો. સિગ્નલો સંકેત નંબર દ્વારા સ્પષ્ટ થયેલ છે. જો સિગ્નલ છે 0 શેલ એક્ઝિટ થાય છે ત્યારે એક્શન ચલાવવામાં આવે છે. ક્રિયા નલ હોઇ શકે છે અથવા `` - '' ભૂતકાળમાં અવગણવા માટેના ચોક્કસ સંકેતનું કારણ બને છે અને બાદમાં તેની ડિફોલ્ટ ક્રિયા કરવામાં આવે છે. જ્યારે શેલ સબ- શેલને ફોર્ક કરે છે, ત્યારે તેને ડિફોલ્ટ ક્રિયામાં ફસાયેલા (પરંતુ અવગણવામાં નહીં) સંકેતો રીસેટ કરે છે. છટકું આદેશનો સંકેત પર કોઈ અસર થતી નથી કે જે શેલમાં પ્રવેશ પર અવગણના કરવામાં આવી હતી.

પ્રકાર [ નામ ... ]

આદેશ તરીકે દરેક નામનું અર્થઘટન કરો અને આદેશ શોધનાં રીઝોલ્યુશનને છાપો. સંભવિત ઠરાવો છે: શેલ કીવર્ડ, ઉપનામ, શેલ બિલ્ટિન , કમાન્ડ, ટ્રૅક કરેલા ઉપનામ અને મળી નથી. ઉપનામો માટે ઉપનામ વિસ્તરણ છાપવામાં આવે છે; આદેશો અને ટ્રૅક કરેલી ઉપનામ માટે આદેશનું સંપૂર્ણ પાથનામ છાપવામાં આવે છે.

ઉલીલિમ [- એચ-એસ ] [- એ-ટીએફડીસીએમએલપીન [ મૂલ્ય ]]

પ્રક્રિયાઓ વિશેની હાર્ડ અથવા નરમ મર્યાદાઓની તપાસ કરો અથવા નવી સીમાઓ સેટ કરો. હાર્ડ સીમા વચ્ચેની પસંદગી (જે કોઈ પ્રક્રિયાને ઉલ્લંઘન કરવાની પરવાનગી નથી, અને જેને ઘટાડવામાં આવી રહી છે તે પછી ઊભા ન થઈ શકે) અને નરમ મર્યાદા (જે પ્રક્રિયાને સંકેત આપી શકાય પરંતુ તે જરૂરી નથી કે માર્યા જાય અને જે વધારી શકાય.) આ ફ્લેગ:

-હ

હાર્ડ મર્યાદા વિશે સેટ કરો અથવા પૂછપરછ કરો

-એસ

સોફ્ટ મર્યાદા વિશે સેટ અથવા પૂછપરછ જો ન તો- એચ નો - એસ સ્પષ્ટ થયેલ છે, નરમ મર્યાદા પ્રદર્શિત થાય છે અથવા બંને મર્યાદા સેટ કરવામાં આવે છે. જો બંને સ્પષ્ટ થયેલ હોય, તો છેલ્લી વ્યક્તિ જીતે છે.

પૂછપરછ અથવા સેટ કરવા માટેની મર્યાદા, પછી, આ ફ્લેગોમાંથી કોઈ એકનો ઉલ્લેખ કરીને પસંદ કરવામાં આવે છે:

-એ

તમામ વર્તમાન મર્યાદા બતાવો

-ટી

CPU સમય પર મર્યાદા દર્શાવો અથવા સેટ કરો (સેકંડમાં)

-એફ

સૌથી મોટી ફાઈલની મર્યાદા દર્શાવો અથવા સેટ કરો કે જે બનાવી શકાય (512 બાઇટ બ્લોકમાં)

-ડી

પ્રક્રિયાના ડેટા સેગમેન્ટમાં કદ (કિલોબાઈટોમાં) બતાવવા અથવા સેટ કરવાની મર્યાદા

-s

પ્રક્રિયાના સ્ટેક કદ પર મર્યાદા દર્શાવો અથવા સેટ કરો (કિલોબાઈટોમાં)

-સી

સૌથી મોટા કોર ડમ્પ કદ પર મર્યાદા દર્શાવો અથવા સેટ કરો કે જે નિર્માણ કરી શકાય છે (512 બાઇટ બ્લોકમાં)

-એમ

કુલ ભૌતિક મેમરી પર મર્યાદા દર્શાવો અથવા સેટ કરો કે જે પ્રક્રિયા દ્વારા ઉપયોગમાં લઇ શકાય છે (કિલોબાઈટ્સમાં)

-એલ

પ્રોબ્લેમ મોલ્ક (2) ( કિલોબાઈટ્સમાં ) સાથે કેટલી મેમરીને તાળુ કરી શકે છે તેની કેટલી મર્યાદા દર્શાવો અથવા સેટ કરો

-પી

આ વપરાશકર્તા પાસે એક જ સમયે પ્રક્રિયાઓની સંખ્યા પર મર્યાદા દર્શાવો અથવા સેટ કરી શકો છો

-ના

નંબર પરની મર્યાદાને દર્શાવો અથવા સેટ કરો જે એકસાથે પ્રક્રિયા એકવાર ખુલ્લી હોય

જો તેમાંનો કોઈ ઉલ્લેખિત નથી, તો તે ફાઇલ કદની મર્યાદા છે જે બતાવેલ અથવા સેટ છે. જો કિંમત સ્પષ્ટ થયેલ છે, તો મર્યાદા તે નંબર પર સેટ છે; અન્યથા વર્તમાન મર્યાદા પ્રદર્શિત થાય છે.

એક મનસ્વી પ્રક્રિયાના સીમાઓ પ્રદર્શિત અથવા sysctl (8) ઉપયોગિતા દ્વારા સેટ કરી શકાય છે

umask [ માસ્ક ]

Umask ની કિંમત નક્કી કરો (umask જુઓ (2)) ચોક્કસ octal કિંમત. જો દલીલ અવગણવામાં આવે છે, તો umask મૂલ્ય છપાયેલ છે.

અનલાઈઝ [- ] [ નામ ]

જો નામ સ્પષ્ટ થયેલ હોય, તો શેલ તે ઉપનામને દૂર કરે છે. જો - a સ્પષ્ટ થયેલ છે, બધા ઉપનામો દૂર કરવામાં આવે છે.

નામ અનસેટ કરો ...

ચોક્કસ ચલો અને વિધેયો અનસેટ અને unexported છે. જો આપેલું નામ વેરિયેબલ અને ફંક્શનને અનુલક્ષે છે, તો ચલ અને કાર્ય બંને અનસેટ છે.

રાહ જુઓ [ નોકરી ]

નોકરીમાં છેલ્લા પ્રક્રિયાની બહાર નીકળો સ્થિતિ પૂર્ણ કરવા અને પરત કરવા માટે ચોક્કસ કાર્યની રાહ જુઓ. જો દલીલ અવગણવામાં આવે છે, તો બધી નોકરીઓ પૂર્ણ થવાની રાહ જુઓ અને શૂન્યની બહાર નીકળો સ્થિતિ રદ કરો.

આદેશ વાક્ય સંપાદન

જ્યારે sh ટર્મિનલમાંથી ક્રિયાપ્રતિક્રિયાત્મક રીતે ઉપયોગમાં લેવાય છે, વર્તમાન આદેશ અને આદેશ ઇતિહાસ (એસસીએ બિલ્ડિન્સમાં એફસી જુઓ) vi-mode આદેશ-વાક્ય સંપાદનની મદદથી સંપાદિત કરી શકાય છે. આ સ્થિતિ નીચે જણાવેલ આદેશો વાપરે છે, જે vi મેન પેજમાં વર્ણવેલ વર્ણનોનો ઉપગણ સમાન છે. આદેશ `સેટ કરો '-o vi vi-mode સંપાદનને સક્ષમ કરે છે અને vi insert મોડમાં સ્થાન મૂકો. Vi-mode enabled સાથે, sh દાખલ મોડ અને આદેશ મોડ વચ્ચે સ્વિચ કરી શકાય છે. સંપાદક અહીં સંપૂર્ણ વર્ણન નથી, પરંતુ તે પછીના દસ્તાવેજમાં હશે. તે vi જેવું જ છે: ટાઇપિંગ એએચ ઇએસસી તમને આદેશ 6 કમાન્ડ મોડમાં ફેંકી દેશે. હિટિંગ અક વળતર જ્યારે કમાંડ મોડમાં લીટીને શેલમાં પસાર કરવામાં આવશે.

મહત્વનું: તમારા ચોક્કસ કમ્પ્યૂટર પર આદેશ કેવી રીતે વાપરવામાં આવે છે તે જોવા માટે man આદેશ ( % man ) નો ઉપયોગ કરો.