બાસ-સ્ક્રિપ્ટમાં દલીલો કેવી રીતે પસાર કરવી

આદેશો, વાક્યરચના અને ઉદાહરણો

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

ઉદાહરણ તરીકે, તમારી પાસે "stats.sh" નામની એક સ્ક્રિપ્ટ હોઈ શકે છે જે ફાઇલ પર ચોક્કસ ઓપરેશન કરે છે, જેમ કે તેના શબ્દોની ગણના. જો તમે ઘણી ફાઇલો પર તે સ્ક્રિપ્ટનો ઉપયોગ કરવાનો પ્રયત્ન કરવા માંગતા હોવ તો, ફાઇલનામને દલીલ તરીકે પસાર કરવાનું શ્રેષ્ઠ છે, જેથી તમે બધી ફાઇલોને પ્રક્રિયા કરવા માટે સમાન સ્ક્રિપ્ટનો ઉપયોગ કરી શકો. ઉદાહરણ તરીકે, જો પ્રક્રિયા કરવા માટેની ફાઇલનું નામ છે "ગીત યાદી", તો તમે નીચેની આદેશ વાક્ય દાખલ કરશો:

sh stats.sh ગીતલિસ્ટ

$ 1, $ 2, $ 3, વગેરે વેરિયેબલ્સનો ઉપયોગ કરીને સ્ક્રિપ્ટમાં દલીલોનો ઉપયોગ કરવામાં આવે છે, જ્યાં $ 1 પ્રથમ દલીલને સંદર્ભિત કરે છે, બીજા દલીલ માટે $ 2 અને તેથી વધુ. આ નીચેના ઉદાહરણમાં સચિત્ર છે:

FILE1 = $ 1 wc $ FILE1

વાંચનીયતા માટે, પ્રથમ દલીલ ($ 1) ની મૂલ્યને વર્ણનાત્મક નામ સાથે એક વેરિયેબલ અસાઇન કરો, અને પછી આ ચલ ($ FILE1) પર શબ્દની ગણતરી ઉપયોગીતા ( wc ) ને કૉલ કરો.

જો તમારી પાસે એક દલીલોની ચલ સંખ્યા છે, તો તમે "$ @" વેરીએબલનો ઉપયોગ કરી શકો છો, જે તમામ ઇનપુટ પરિમાણો એક એરે છે. તેનો અર્થ એ કે તમે for-loop નો ઉપયોગ દરેક એક પર પ્રક્રિયા કરવા માટે કરી શકો છો, જેમ કે નીચેના ઉદાહરણમાં સચિત્ર.

"$ @" માં FILE1 માટે wc $ FILE1 પૂર્ણ થયું

આદેશ વાક્યમાંથી આ સ્ક્રિપ્ટને કેવી રીતે દલીલો સાથે કૉલ કરવો તેનો અહીં એક ઉદાહરણ છે:

શ આંકડાઓ. ગીતગીત 1 ગીતગીત 2 songlist3

જો કોઈ દલીલની જગ્યાઓ હોય, તો તમારે તેને સિંગલ અવતરણ સાથે બંધ કરવાની જરૂર છે. દાખ્લા તરીકે:

sh stats.sh 'ગીત યાદી 1' 'ગીત યાદી 2' 'ગીત યાદી 3'

વારંવાર સ્ક્રીપ્ટ લખવામાં આવે છે કે વપરાશકર્તા ફ્લેગોનો ઉપયોગ કરીને કોઈ પણ ક્રમમાં દલીલોમાં પસાર કરી શકે છે. ફ્લેગ પદ્ધતિ સાથે, તમે કેટલીક દલીલો વૈકલ્પિક પણ બનાવી શકો છો.

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

મેકરેપોર્ટ -યુ જેસ્મિથ -પી નોટબુક્સ -ડી 10-20-2011 -એફ પીડીએફ

બાસ આ કાર્યક્ષમતાને "ગેટપ્ટ્સ" કાર્ય સાથે સક્ષમ કરે છે. ઉપરોક્ત ઉદાહરણ માટે, તમે નીચે પ્રમાણે ગેટોપ્ટ્સનો ઉપયોગ કરી શકો છો:

આ તે સમયે -લૂપ છે જે "ગેટોપ્ટ્સ" ફંક્શન અને કહેવાતા "ઓપ્ટસ્ટ્રિંગ" નો ઉપયોગ કરે છે, આ કિસ્સામાં "u: d: p: f:", દલીલો દ્વારા ફરી વળવું. જ્યારે-લૂપ ઑપ્ટસ્ટ્રિંગ દ્વારા ચાલે છે, જેમાં ફ્લેગનો ઉપયોગ થાય છે જે દલીલો પસાર કરવા માટે ઉપયોગમાં લઇ શકાય છે અને તે ફ્લેગ માટે "વિકલ્પ" માં આપવામાં આવેલા દલીલ મૂલ્યને અસાઇન કરે છે. કેસ-નિવેદન પછી વૈશ્વિક ચલમાં વેરિયેબલ "વિકલ્પ" ની કિંમતને સોંપે છે કે જે બધી દલીલો વાંચ્યા પછી ઉપયોગમાં લઈ શકાય છે.

ઓપ્ટસ્ટ્રિંગના કોલન્સનો મતલબ એવો થાય છે કે અનુરૂપ ફ્લેગ માટે મૂલ્યો આવશ્યક છે. ઉપરોક્ત ઉદાહરણમાં બધા ધ્વજને કોલન દ્વારા અનુસરવામાં આવે છે: "u: d: p: f:". આનો અર્થ એ થાય કે, બધા ધ્વજોને મૂલ્યની જરૂર છે. ઉદાહરણ તરીકે, ઉદાહરણ તરીકે, "ડી" અને "એફ" ફ્લેગની કિંમત હોવાની ધારણા ન હતી તો ઓપ્સ્ટરીંગ "u: dp: f" હશે.

ઓપ્ટસ્ટ્રિંગની શરૂઆતમાં એક કોલોન, ઉદાહરણ તરીકે ": u: d: p: f:", સંપૂર્ણપણે અલગ અર્થ ધરાવે છે. તે તમને ફ્લેગનું સંચાલન કરવાની મંજૂરી આપે છે કે જે ઑપ્ટસ્ટ્રિંગમાં પ્રદર્શિત નથી. તે કિસ્સામાં "વિકલ્પ" વેરીએબલની કિંમત "?" અને "OPTARG" ની કિંમત અનપેક્ષિત ધ્વજ પર સેટ છે તમને ભૂલના વપરાશકર્તાને માહિતી આપતી કોઈ યોગ્ય ભૂલ મેસેજ દર્શાવવાની મંજૂરી આપે છે.

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