GNU/Linux >> Belajar Linux >  >> Linux

Bash Untuk Loop

Loop adalah salah satu konsep dasar bahasa pemrograman. Loop berguna saat Anda ingin menjalankan serangkaian perintah berulang-ulang hingga kondisi tertentu tercapai.

Dalam bahasa skrip seperti Bash, loop berguna untuk mengotomatiskan tugas yang berulang.

Ada tiga konstruksi loop dasar dalam skrip Bash, for loop, while loop, dan until lingkaran.

Dalam tutorial ini, kita akan membahas dasar-dasar perulangan for di Bash. Kami juga akan menunjukkan cara menggunakan break dan continue pernyataan untuk mengubah aliran loop.

Bash Standar for Putaran #

for loop mengulangi daftar item dan melakukan serangkaian perintah yang diberikan.

Bash for loop mengambil bentuk berikut:

for item in [LIST]
do
  [COMMANDS]
done

Daftar tersebut dapat berupa rangkaian string yang dipisahkan oleh spasi, rentang angka, keluaran dari suatu perintah, larik, dan seterusnya.

Mengulangi string #

Pada contoh di bawah, loop akan mengulangi setiap item dalam daftar string, dan variabel element akan disetel ke item saat ini:

for element in Hydrogen Helium Lithium Beryllium
do
  echo "Element: $element"
done

Loop akan menghasilkan output berikut:

Element: Hydrogen
Element: Helium
Element: Lithium
Element: Beryllium

Mengulangi rentang angka #

Anda dapat menggunakan ekspresi urutan untuk menentukan rentang angka atau karakter dengan menentukan titik awal dan titik akhir rentang. Ekspresi urutan mengambil bentuk berikut:

{START..END}

Berikut adalah contoh loop yang mengulang semua angka dari 0 hingga 3:

for i in {0..3}
do
  echo "Number: $i"
done
Number: 0
Number: 1
Number: 2
Number: 3

Mulai dari Bash 4, dimungkinkan juga untuk menentukan kenaikan saat menggunakan rentang. Ekspresi mengambil bentuk berikut:

{START..END..INCREMENT}

Berikut ini contoh yang menunjukkan cara menambah sebesar 5:

for i in {0..20..5}
do
  echo "Number: $i"
done
Number: 0
Number: 5
Number: 10
Number: 15
Number: 20

Mengulangi elemen array #

Anda juga dapat menggunakan for loop untuk mengulangi array elemen.

Pada contoh di bawah ini, kita mendefinisikan sebuah array bernama BOOKS dan mengulangi setiap elemen larik.

BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby')

for book in "${BOOKS[@]}"; do
  echo "Book: $book"
done
Book: In Search of Lost Time
Book: Don Quixote
Book: Ulysses
Book: The Great Gatsby

Bash gaya-C untuk loop #

Sintaks gaya-C for loop mengambil bentuk berikut:

for ((INITIALIZATION; TEST; STEP))
do
  [COMMANDS]
done

INITIALIZATION bagian dijalankan hanya sekali ketika loop dimulai. Kemudian, TEST bagian dievaluasi. Jika salah, loop dihentikan. Jika TEST benar, perintah di dalam tubuh for loop dieksekusi, dan STEP bagian diperbarui.

Dalam kode contoh berikut, bintang loop dengan menginisialisasi i = 0 , dan sebelum setiap iterasi memeriksa apakah i ≤ 10 . Jika benar itu mencetak nilai saat ini dari i dan [menambah variabel] i dengan 1 (i++ ) jika tidak, loop akan berhenti.

for ((i = 0 ; i <= 1000 ; i++)); do
  echo "Counter: $i"
done

Loop akan berulang 1001 kali dan menghasilkan output berikut:

Counter: 0
Counter: 1
Counter: 2
...
Counter: 998
Counter: 999
Counter: 1000

break dan continue Pernyataan #

break dan continue pernyataan dapat digunakan untuk mengontrol eksekusi loop for.

break Pernyataan #

break pernyataan mengakhiri loop saat ini dan meneruskan kontrol program ke pernyataan yang mengikuti pernyataan yang dihentikan. Biasanya digunakan untuk mengakhiri loop ketika kondisi tertentu terpenuhi.

Dalam contoh berikut, kami menggunakan if pernyataanuntuk menghentikan eksekusi loop setelah item yang diulang saat ini sama dengan 'Lithium'.

for element in Hydrogen Helium Lithium Beryllium; do
  if [[ "$element" == 'Lithium' ]]; then
    break
  fi
  echo "Element: $element"
done

echo 'All Done!'
Element: Hydrogen
Element: Helium
All Done!

continue Pernyataan #

continue pernyataan keluar dari iterasi loop saat ini dan meneruskan kontrol program ke iterasi loop berikutnya.

Dalam contoh berikut, kami melakukan iterasi melalui rentang angka. Ketika item yang diulang saat ini sama dengan '2', continue pernyataan akan menyebabkan eksekusi kembali ke awal loop dan melanjutkan dengan iterasi berikutnya:

for i in {1..5}; do
  if [[ "$i" == '2' ]]; then
    continue
  fi
  echo "Number: $i"
done
Number: 1
Number: 3
Number: 4
Number: 5

Bash for Contoh Perulangan #

Mengganti nama file dengan spasi di nama file #

Contoh berikut menunjukkan cara mengganti nama semua file di direktori saat ini dengan spasi di namanya dengan mengganti spasi menjadi garis bawah:

for file in *\ *; do
  mv "$file" "${file// /_}"
done

Mari kita uraikan kode baris demi baris:

  • Baris pertama membuat for loop dan iterasi melalui daftar semua file dengan spasi di namanya. Ekspresi *\ * membuat daftar.
  • Baris kedua berlaku untuk setiap item dari daftar dan memindahkan file ke yang baru menggantikan spasi dengan garis bawah (_ ). Bagian ${file// /_} menggunakan ekspansi parameter shelluntuk mengganti pola dalam parameter dengan string.
  • done menunjukkan akhir segmen loop.

Mengubah ekstensi file #

Contoh berikut menunjukkan cara menggunakan Bash for loop untuk mengganti nama semua file yang dikirim dengan .jpeg di direktori saat ini dengan mengganti ekstensi file dari .jpeg ke .jpg.

for file in *.jpeg; do
    mv -- "$file" "${file%.jpeg}.jpg"
done

Mari kita menganalisis kode baris demi baris:

  • Baris pertama membuat for loop dan mengulangi daftar semua file yang diakhiri dengan '.jpeg'.
  • Baris kedua berlaku untuk setiap item daftar dan memindahkan file ke yang baru menggantikan '.jpeg' dengan '.jpg'. ${file%.jpeg} untuk menghapus bagian '.jpeg' dari nama file menggunakan ekspansi parameter shell
  • done menunjukkan akhir segmen loop.

Kesimpulan #

Bash for loop digunakan untuk mengeksekusi serangkaian perintah yang diberikan berulang kali untuk jumlah waktu yang tetap.

Jika Anda memiliki pertanyaan atau umpan balik, silakan tinggalkan komentar.


Linux
  1. Panduan Bash For Loop dan Contohnya

  2. Sejajarkan Bash Untuk Loop?

  3. Bagaimana Cara Membuat A For Loop Dengan Jumlah Iterasi yang Dapat Diubah?

  1. Cara menulis loop di Bash

  2. Tingkatkan Nomor Bangun Di Bash?

  3. Bersarang untuk loop

  1. Skrip Linux:3 cara untuk while loop di Bash

  2. Contoh Bash For Loop dan While Loop

  3. Menjaga Anda di Loop – Contoh Bash Untuk, Sementara, Sampai Loop