Როგორ დავწეროთ BASH "for" Loop

როგორ გამოვიყენოთ BASH "for" loop in shell scripts

BASH (რომელიც დგას Bourne Again Shell) არის სკრიფტინგის ენა გამოყენებული უმეტეს Linux და UNIX დაფუძნებული ოპერაციული სისტემები.

თქვენ შეგიძლიათ აწარმოოთ BASH ბრძანებები ტერმინალის ფანჯარაში მეორეზე, ან შეგიძლიათ დაამატოთ ბრძანებები ტექსტური ფაილში, რათა წარმოეშვას Shell Script.

დიდი რამ არის წერის სკრიპტების წერა, რომ ისევ და ისევ ისევ აწარმოებთ. მაგალითად წარმოიდგინეთ, სისტემაში მომხმარებლის დამატებაა, მათი ნებართვების დაყენება და მათი საწყისი გარემოს მართვა. თქვენ შეგიძლიათ ჩაწეროთ ბრძანებები ქაღალდის ნაჭდევებზე და აწარმოეთ ისინი, როგორც ახალი მომხმარებლის დამატება, შეგიძლიათ დაწეროთ ერთი სკრიპტი და მხოლოდ სკრიპტში გადავიდეს პარამეტრი.

სკრიპტის ენები, როგორიცაა BASH- ს მსგავსი პროგრამების შექმნა სხვა ენებზე. მაგალითად, შეგიძლიათ გამოიყენოთ იმპორტის პარამეტრები, რათა მიიღოთ შეყვანა კლავიატურადან და შეინახონ მათ ცვლადებად. ამის შემდეგ შეგიძლიათ მიიღოთ სკრიპტი შეყვანის პარამეტრების ღირებულების საფუძველზე გარკვეული მოქმედების შესასრულებლად .

ნებისმიერი პროგრამირების და სკრიპტის ენის ძირითადი ნაწილი არის ისევ ერთი და იმავე კოდის გაშვება.

არსებობს რამდენიმე გზა, რომ გაიმეოროთ კოდი (ასევე ცნობილი როგორც მარყუჟების). ამ სახელმძღვანელოში, თქვენ ნაჩვენები იქნება, თუ როგორ დავწეროთ "for" loop.

Loop for ხელახლა გარკვეული ნაწილი კოდი დასრულდა და მეტი. ისინი სასარგებლოა ისე, რომ რიგი ბრძანებები შეინარჩუნოს გაშვებული სანამ კონკრეტული პირობაა დაკმაყოფილებული, რის შემდეგაც ისინი შეჩერდება.

ამ სახელმძღვანელოში ნაჩვენები იქნება ხუთი გზა ბაბლის სკრიპტის გამოყენებით.

დაწყებამდე

სანამ დაიწყებთ loop მაგალითები, თქვენ უნდა გახსნათ ტერმინალის ფანჯარა და დაიცვას ეს ნაბიჯები:

  1. შეიტანეთ mkdir სკრიპტები ( უფრო მეტი აქ მოძღვარი აქ )
  2. შეიყვანეთ CD სკრიპტები (ეს ცვლის სკრიპტს ცვლად )
  3. შეიყვანეთ nano examplen.sh (სადაც n არის მაგალითი, რომელიც მუშაობს)
  4. შეიყვანეთ სკრიპტი
  5. დააჭირეთ CTRL + O და შეინახოს CTRL + X გასასვლელად
  6. Run bash examplen.sh (ერთხელ, ერთად n ყოფნა მაგალითი თქვენ მუშაობს)

როგორ გადავხედავთ სიიდან

#! / bin / bash
ნომერზე 1 2 3 4 5
კეთება
echo $ ნომერი
შესრულებულია
გასვლა 0

BASH- ის მეთოდის "მარკ" -ის გამოყენება გარკვეულწილად განსხვავდება სხვა პროგრამირების და სკრიპტის ენების სახელების "მარკ" -ისთვის. მოდით დავწეროთ სკრიპტი ...

ბაში "ამისთვის" მარყუჟის ყველა, განცხადებები შორის გაკეთება და გაკეთდეს ხორციელდება ერთხელ ყველა პუნქტის სიაში.

ზემოთ მოყვანილ მაგალითში სიაში არის ყველაფერი რაც სიტყვაშია (ანუ 1 2 3 4 5).

ყოველ ჯერზე loop iterates, მომდევნო მნიშვნელობა სიაში არის ჩასმული შევიდა ცვლადი მითითებულია სიტყვა "for" . ზემოთ მარყუჟში, ცვლადს ეწოდება ნომერი .

ეკრანისთვის გამოიყენება ინფორმაცია ეკრანისთვის.

აქედან გამომდინარე, ამ მაგალითს იღებს ნომრები 1-დან 5-მდე და უჩვენებს მათ ერთ-ერთ ეკრანზე:

როგორ იწყება ფურცლიდან დაწყებული და დასასრული წერტილიდან

ზემოხსენებული მაგალითი ის არის, რომ თუ გსურთ უფრო დიდი სიის დამუშავება (1-დან 500 წლამდე), ეს ასაკებმა უნდა მიიღონ ყველა ნომრის პირველი ადგილი.

ეს გვაძლევს მეორე მაგალითს, რომელიც გვიჩვენებს, თუ როგორ უნდა მიუთითოთ დაწყების და დასასრული წერტილი:

#! / bin / bash
ნომრისთვის {1.10}
კეთება
echo "$ number"
შესრულებულია
გასვლა 0

წესები ძირითადად იგივეა. მას შემდეგ, რაც სიტყვა " in" - ის სიის მნიშვნელობები სიაშია და სიაში თითოეული ღირებულება მოთავსებულია ცვლადში (ანუ ნომერი), და ყოველ ჯერზე მარყუჟის იერუსალიმში, შესრულებულია შესრულების გაკეთება და შესრულება.

ძირითადი განსხვავება არის სიის ჩამოყალიბების გზა. Curly ფრჩხილებში {} ძირითადად აღნიშნავს სპექტრი და დიაპაზონი, ამ შემთხვევაში, არის 1 დან 10 (ორი წერტილი ცალკე დაწყების და ბოლოს სპექტრი).

ამგვარად, ამ მაგალითს თითოეული რიცხვი 1-დან 10-მდე იკავებს და ეკრანზე შემდეგი სახით გამოიცემა:

იგივე loop შეიძლება დაწერილი ასე, ერთად სინტაქსი იდენტურია პირველი მაგალითი:

ნომერზე 1 2 3 4 5 6 7 8 9 10

როგორ გამოტოვოთ ნომრები დიაპაზონში

წინა მაგალითმა აჩვენა, თუ როგორ იწყება loop დაწყებისა და დასასრული წერტილიდან, ასე რომ, ახლა ჩვენ შევხედავთ თუ როგორ უნდა გამოტოვოთ ნომრები სპექტრი.

წარმოიდგინეთ, რომ გსურთ 0-დან 100-მდე ჩამოსვლა, მაგრამ მხოლოდ მეათე ნომრის ჩვენება. შემდეგი სკრიპტი გვიჩვენებს, თუ როგორ უნდა გავაკეთოთ მხოლოდ ის:

#! / bin / bash
ნომრისთვის {0.100..10}
კეთება
echo "$ number"
შესრულებულია
გასვლა 0

წესები ძირითადად იგივეა. არსებობს სია, ცვლადი და კომპლექტი განცხადებები შესრულდება შორის და გაკეთდეს . ამ დროისთვის სია ასე გამოიყურება: {0.100..10}.

პირველი ნომერი არის 0, ხოლო საბოლოო ნომერი არის 100. მესამე ნომერი (10) არის სიაში არსებული ელემენტების რაოდენობა, რომელიც გამოტოვებს.

ზემოთ მოყვანილი მაგალითი აჩვენებს შემდეგ გამომავალს:

უფრო ტრადიციული ეძებს Loop

BASH გზა წერა ამისთვის loops ოდნავ უცნაური როდესაც შედარებით სხვა პროგრამირების ენები.

თუმცა, შეგიძლიათ დაწეროთ მარყუჟისთვის მსგავსი სტილი C პროგრამირების ენაზე, როგორიცაა:

#! / bin / bash
((ნომერი = 1; ნომერი <100; ნომერი + +))
{
თუ (($ 5% === 0))
მაშინ
ეხო "$ -იანი რიცხვი 5-ისთვის არის გაყოფილი"
fi
}
გასვლა 0

მარყუჟი იწყება ცვლადი რიცხვის 1-ით (რიცხვი = 1 ). მარყუჟი ინარჩუნებს გამტარიანობას, ხოლო რიცხვის ღირებულება 100-ზე ნაკლებია ( რიცხვი <100 ). რიცხვითი ცვლილებების ღირებულება ყოველი მასალის შემდეგ ( რიცხვი ++ ) შემდეგ 1-ის დამატებაში.

Curly braces შორის ყველაფერი შესრულებულია მარყუჟის თითოეული გაერთიანებაზე.

ოდნავ შორის ბრმა ამოწმებს რიცხვის მნიშვნელობას, დაყოფა 5-ისა და დანარჩენი 0. შეადგინა 0. თუ დანარჩენი 0 არის მაშინ რიცხვი 5-ისაა და შემდეგ გამოჩნდება ეკრანზე.

მაგალითად:

თუ გსურთ მისი შეცვლის ზომის შეცვლა, შეგიძლიათ შეცვალოთ ნომერი ++ განყოფილება ნომერი = ნომერი + 2 , ნომერი = ნომერი + 5 ან ნომერი = ნომერი + 10 და ა.შ.

ეს შეიძლება კიდევ უფრო შემცირდეს ნომერი + = 2 ან რიცხვი + = 5 .

პრაქტიკული მაგალითი

ამისთვის მარყუჟების შეუძლია გააკეთოს მეტი iterate სიები ნომრები. თქვენ შეგიძლიათ გამოიყენოთ სხვა ბრძანებები, როგორც სიაში.

შემდეგი მაგალითი გვიჩვენებს, თუ როგორ უნდა გარდაქმნას აუდიო ფაილები MP3- დან WAV- დან :

#! / bin / bash

ამ მაგალითში სია არის ყველა ფაილი. MP3 გაფართოება მიმდინარე საქაღალდეში და ცვლადი არის ფაილი .

Mpg ბრძანება აკონვერტებს MP3 ფაილის შევიდა WAV. თუმცა, თქვენ ალბათ უნდა დააყენოთ ეს თქვენი პაკეტის მენეჯერის გამოყენებით.