logo

Döngü İçin Bash

Bu başlıkta kullanımını anlayacağız. döngü için Bash komut dosyalarında.

Diğer programlama dilleri gibi, bash kabuk komut dosyası da tekrarlanan görevleri gerçekleştirmek için 'döngüler'i destekler. Bir dizedeki bir dizi kelime veya bir dizideki öğeler üzerinde belirli bir dizi ifadeyi yinelememize yardımcı olur. Örneğin, UNIX komutunu (veya görevini) birçok kez çalıştırabilir veya bir 'for döngüsü' kullanarak komut listesini okuyup işleyebilirsiniz.

For Döngüsünün Sözdizimi

Bash betiğine 'for loop'u iki şekilde uygulayabiliriz. Bunun bir yolu 'içeriye', diğer bir yolu ise c tarzı sözdizimidir. Bash kabuk komut dosyası oluşturmada 'for loop'un sözdizimi aşağıdadır:

 for variable in list do commands done 

Veya

 for (( expression1; expression2; expression3 )) do commands done 

'For loop' ifadesinin bazı önemli noktaları vardır:

  • Bash'deki her 'for loop' bloğu, 'do' anahtar sözcüğüyle başlar ve ardından bloğun içindeki komutlar gelir. 'For loop' ifadesi 'done' anahtar sözcüğüyle kapatılır.
  • Bir 'for döngüsünün' yineleneceği süre, bildirilen liste değişkenlerine bağlıdır.
  • Döngü listeden bir öğe seçecek ve değeri döngü içinde kullanılacak bir değişkene atayacaktır.
  • 'Do' ve 'done' arasındaki komutların yürütülmesinden sonra döngü en üste döner ve listeden bir sonraki öğeyi seçip tüm süreci tekrarlar.
  • Liste boşluklarla ayrılmış sayılar veya dizeler vb. içerebilir.

'For döngüsü' örneklerinden bazıları, nasıl çalıştıklarını göstermek için aşağıda verilmiştir:

Temel 'Döngü İçin' Örneği

Bash Komut Dosyası

 #!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.' 

Çıktı

Döngü İçin Bash

Döngünün Bir Aralığı Okuması İçin

Bash Komut Dosyası

 #!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.' 

Çıktı

Döngü İçin Bash

Artış/Azalışla Bir Aralığı Okumak İçin Döngü İçin

Belirtilen bir değeri iki nokta (..) ve adım adım değer ekleyerek artırabilir veya azaltabiliriz, örneğin {START..END..INCREMENT}. Aşağıdaki örneğe göz atın:

Artış için

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

Çıktı

Döngü İçin Bash

Azaltma İçin

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

Çıktı

Döngü İçin Bash

Dizi Değişkenlerini Okumak İçin Döngü İçin

Bir dizinin değerlerini yinelemek için 'for döngüsü'nü kullanabiliriz.

c++'da miras

Sözdizimi şu şekilde tanımlanabilir:

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

Çıktı

'Dizi'deki her öğe için, 'do'dan 'done'a kadar olan ifadeler veya komutlar dizisi yürütülür. Her bir öğeye, ilgili yineleme için döngü içerisinde 'i' olarak erişilebilir. Bir dizinin öğeleri üzerinde yineleme yapmak için 'for döngüsü' kullanımını açıklayan aşağıdaki örneğe göz atın:

Bash Komut Dosyası

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

Çıktı

Döngü İçin Bash

Döngü İçin Kelime ayırıcılar olarak Dize'deki beyaz boşlukları okumak için

Sözdizimi aşağıdaki gibi tanımlanabilir:

 #!/bin/bash for word in $str; do done 

Burada, cadde bir diziyi ifade eder.

yeni satır python

'Do'dan 'done'a kadar olan ifadeler bir dizgenin her 'kelimesi' için yürütülür. Aşağıdaki örneğe göz atın:

Bash Komut Dosyası

 #!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done 

Çıktı

Döngü İçin Bash

Döngü İçin String'deki her satırı bir kelime olarak okumak için

Sözdizimi aşağıdaki gibi tanımlanabilir:

 #!/bin/bash for word in '$str'; do done 

Burada 'do'dan 'done'a kadar olan ifadeler bir dizgenin her 'satırı' için yürütülür. Aşağıdaki örneğe göz atın:

Bash Komut Dosyası

 #!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done 

Çıktı

Döngü İçin Bash

Not: 'For Loop'un String'deki beyaz boşlukları kelime ayırıcı olarak okuması' ile 'For Loop'un String'deki her satırı bir kelime olarak okuması' arasındaki tek fark, string değişkeninin etrafındaki çift tırnak işaretleridir.

Okuma Döngüsü İçin Üç İfade

Üç ifadeli sözdizimi 'for döngüsü'nün en yaygın sözdizimidir. Birinci ifade başlama sürecini, ikinci ifade bitişi, üçüncü ifade ise artış veya azalmayı ifade etmektedir.

for döngüsüyle üç ifade kullanarak 1'den 10'a kadar sayıları yazdırmak için aşağıdaki örneğe göz atın:

Bash Komut Dosyası

 #!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A &apos;break&apos; statement can be used inside &apos;for&apos; loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the &apos;continue&apos; statement inside the &apos;for&apos; loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>

Çıktı

Döngü İçin Bash

Continue İfadesi ile Döngü İçin

Belirli bir koşula ilişkin herhangi bir ifadeyi atlamak için 'for' döngüsü içindeki 'continue' ifadesini kullanabiliriz. Bash'e, döngünün o belirli yinelemesini yürütmeyi durdurmasını ve bir sonraki yinelemeyi işlemesini söyler.

Bash Komut Dosyası

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>

Çıktı

Döngü İçin Bash

Çözüm

Bu konu başlığında, belirli görevleri gerçekleştirmek için Bash'te for loop ifadesinin nasıl kullanılacağını tartıştık.