કેવી રીતે બાસ લખો - લૂપ્સ

આદેશો, સિંટેક્સ, અને ઉદાહરણો

તમે સ્ક્રિપ્ટ ફાઈલમાં લખીને તેને ચલાવતા આદેશોનો ક્રમ ચલાવી શકો છો.

સ્ક્રિપ્ટ ફાઇલ એ ફક્ત એક ટેક્સ્ટ ફાઇલ છે, સામાન્ય રીતે. એસએચ ફાઇલ એક્સ્ટેંશન સાથે, જેમાં આદેશો ( શેલ ) માંથી અમલ કરી શકાય તેવી સૂચનાઓની અનુક્રમમાં શામેલ છે.

લૂપ ઉદાહરણો જ્યારે

નીચે એક લૂપનું ઉદાહરણ છે. જ્યારે એક્ઝિક્યુટ થાય છે, આ સ્ક્રિપ્ટ ફાઈલ સ્ક્રીન પર નંબરો 1 થી 9 છાપશે. જ્યારે-સ્ટેટમેન્ટ તમને for-loop કરતા સમાપ્તિ શરતને સ્પષ્ટ કરવા માટે વધુ રાહત આપે છે.

#! / bin / bash ગણતરી = 1 જ્યારે [$ count -le 9] શું "$ count" સ્લીપ 1 ("+ count ++") કર્યું છે

ઉદાહરણ તરીકે, તમે અગાઉના સ્ક્રીપ્ટને ઇન્ક્રીમેન્ટ નિવેદન "((count ++))" ને બાદ કરીને અનંત લૂપ બનાવી શકો છો:

#! / bin / bash ગણતરી = 1 જ્યારે [$ count -le 9] શું "$ count" સ્લીપ ઇકો કરો કર્યું છે 1 પૂર્ણ થયું

"ઊંઘ 1" નિવેદન દરેક પુનરાવૃત્તિ પર 1 સેકન્ડ માટે અમલ અટકાવે છે. પ્રક્રિયા સમાપ્ત કરવા માટે Ctrl + C કીબોર્ડ શોર્ટકટનો ઉપયોગ કરો.

તમે શરત તરીકે કોલોન મૂકીને અનંત લૂપ પણ બનાવી શકો છો:

#! / bin / bash count = 1 જ્યારે: શું "$ count" સ્લીપ 1 ("+ count ++") પૂર્ણ થાય છે

જ્યારે-લૂપમાં ઘણી શરતોનો ઉપયોગ કરવા માટે, તમારે ડબલ ચોરસ બ્રેકેટ નોટેશનનો ઉપયોગ કરવો પડશે:

ગણતરી = 1 થાય = 0 [[$ count -le 9] અને& [$ done == 0]] "$ count" સ્લીપ 1 ((ગણતરી ++)) ઇકો કરો જો [$ count == 5]; પછી $ પૂર્ણ = 1 ફાઇન થયું

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

"&&" એટલે લોજિકલ "અને" અને "||" તાર્કિક એટલે કે "અથવા".

"અને" અને "અથવા" માં કન્ડીશનોનો એક વૈકલ્પિક સંકેત છે "-a" અને "-o" એક ચોરસ કૌંસ સાથે. ઉપરોક્ત શરત:

[[$ count -le 9] && [$ પૂર્ણ == 0]]

... તરીકે ફરીથી લખી શકાય છે:

[$ ગણતરી -9 9] -એક [$ થઈ ગયું == 0]

ટેક્સ્ટ ફાઇલનું વાંચન સામાન્ય રીતે જ્યારે લૂપ સાથે થાય છે. નીચેના ઉદાહરણમાં, bash સ્ક્રિપ્ટ "inventory.txt:" નામની ફાઇલની લીટી દ્વારા સમાવિષ્ટો રેખાને વાંચે છે.

ફાઇલ = ઇન્વેન્ટરી. Txt exec 6

પ્રથમ રેખા "FILE" વેરિયેબલમાં ઇનપુટ ફાઇલ નામ અસાઇન કરે છે. બીજી લીટી ફાઇલ વર્ણનકર્તા "6" (તે 3 અને 9 વચ્ચેનું મૂલ્ય હોઈ શકે છે) માં "પ્રમાણભૂત ઇનપુટ" સાચવે છે સ્ક્રિપ્ટના અંતમાં "0" ફાઈલમાં "સ્ટાન્ડર્ડ ઇનપુટ" પુનઃસ્થાપિત કરી શકાય છે, ("નિવેદન જુઓ" 3 લી વાક્યમાં ઇનપુટ ફાઇલ "0," જેનો ઉપયોગ થાય છે. સ્ટાન્ડર્ડ ઇનપુટ માટે. "વાંચી" સ્ટેટમેન્ટ પછી દરેક પુનરાવૃત્તિ પર ફાઇલમાંથી એક લીટી વાંચે છે અને તેને "line1" વેરિયેબલ પર સોંપે છે.

સમય-સમયના લૂપથી અકાળે બહાર નીકળવા માટે, તમે આ જેવી વિરામના નિવેદનનો ઉપયોગ કરી શકો છો:

ગણતરી = 1 થાય = 0 જ્યારે [$ count -le 9] "$ count" સ્લીપ 1 ((ગણતરી ++)) ઇકો કરો જો [$ count == 5] પછી પૂર્ણ થયેલ પૂર્વાધિકારને સમાપ્ત કરો

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

ચાલુ નિવેદન, બીજી તરફ, વર્તમાન પુનરાવર્તનના બાકીના બાકીના લૂપ સ્ટેટમેન્ટને જ છોડી દે છે અને સીધા જ આગામી પુનરાવર્તનમાં કૂદકા કરે છે:

ગણતરી = 1 થાય = 0 જ્યારે [$ count -le 9] ઊંઘ 1 કરો ((ગણતરી ++)) જો [$ count == 5] તો પછી "$ count" ને ઇકો કરો, પૂર્ણ થયું છે ઇકો

આ કિસ્સામાં, "ચાલુ" સ્ટેટમેંટ ચલાવવામાં આવે છે જ્યારે વેરિયેબલ "ગણતરી" 5 સુધી પહોંચે છે. આનો અર્થ એ છે કે આ પુનરાવૃત્તિ પર અનુગામી નિવેદન (ઇકો "$ ગણતરી") ચલાવવામાં આવતું નથી (જ્યારે "ગણતરી" ની કિંમત 5 છે).