Cara Menulis BASH "for" Loop

Cara menggunakan loop BASH "for" dalam skrip shell

BASH (yang merupakan singkatan dari Bourne Again Shell) adalah bahasa scripting yang digunakan oleh sebagian besar sistem operasi Linux dan UNIX.

Anda dapat menjalankan perintah BASH dalam jendela terminal satu demi satu atau Anda dapat menambahkan perintah ke file teks untuk menghasilkan skrip shell.

Hal hebat tentang menulis skrip shell adalah Anda dapat menjalankannya lagi dan lagi. Misalnya bayangkan Anda perlu menambahkan pengguna ke suatu sistem, mengatur izin mereka dan mengelola lingkungan awal mereka. Anda dapat menuliskan perintah pada selembar kertas dan menjalankannya saat Anda menambahkan pengguna baru atau Anda dapat menulis satu skrip dan hanya meneruskan parameter ke skrip itu.

Bahasa scripting seperti BASH memiliki konstruksi pemrograman yang sama seperti bahasa lain. Misalnya, Anda dapat menggunakan parameter impor untuk mendapatkan masukan dari keyboard dan menyimpannya sebagai variabel. Anda kemudian bisa mendapatkan skrip untuk melakukan tindakan tertentu berdasarkan nilai parameter input .

Bagian kunci dari pemrograman dan bahasa scripting adalah kemampuan untuk menjalankan potongan kode yang sama lagi dan lagi.

Ada sejumlah cara untuk mengulang kode (juga dikenal sebagai loop). Dalam panduan ini, Anda akan diperlihatkan cara menulis loop "untuk".

A for loop mengulangi bagian tertentu dari kode berulang-ulang. Mereka berguna sehingga serangkaian perintah dapat terus berjalan sampai kondisi tertentu terpenuhi, setelah itu mereka akan berhenti.

Dalam panduan ini, Anda akan ditunjukkan lima cara untuk menggunakan pengulangan dalam skrip BASH.

Sebelum Memulai

Sebelum Anda memulai dengan contoh pengulangan, Anda perlu membuka jendela terminal dan ikuti langkah-langkah berikut:

  1. Masukkan skrip mkdir ( pelajari lebih lanjut tentang mkdir di sini )
  2. Masukkan skrip cd (ini mengubah direktori ke skrip )
  3. Masukkan nano examplen.sh (di mana n adalah contoh yang sedang Anda kerjakan)
  4. Masukkan skrip
  5. Tekan CTRL + O untuk menyimpan dan CTRL + X untuk keluar
  6. Jalankan bash examplen.sh (sekali lagi, dengan n sebagai contoh yang Anda kerjakan)

Bagaimana Mengulang Melalui Daftar

#! / bin / bash
untuk nomor dalam 1 2 3 4 5
melakukan
echo $ number
selesai
keluar 0

Cara BASH menggunakan "untuk" loop agak berbeda dengan cara kebanyakan bahasa pemrograman dan scripting lainnya menangani "untuk" loop. Mari kita langgar skripnya ...

Dalam BASH "untuk" loop semua, pernyataan antara lakukan dan lakukan dilakukan sekali untuk setiap item dalam daftar.

Dalam contoh di atas, daftar adalah segala sesuatu yang muncul setelah kata dalam (yaitu 1 2 3 4 5).

Setiap kali loop iterates, nilai berikutnya dalam daftar dimasukkan ke variabel yang ditentukan setelah kata "untuk" . Pada loop di atas, variabel disebut angka .

Pernyataan gema digunakan untuk menampilkan informasi ke layar.

Oleh karena itu, contoh ini mengambil angka 1 hingga 5 dan menampilkannya satu per satu ke layar:

Cara Memutar Antara Titik Awal dan Akhir

Masalah dengan contoh di atas adalah bahwa jika Anda ingin memproses daftar yang lebih besar (katakanlah 1 hingga 500), itu akan memakan waktu lama untuk mengetik semua angka di tempat pertama.

Ini membawa kita ke contoh kedua yang menunjukkan bagaimana menentukan titik awal dan akhir:

#! / bin / bash
untuk nomor dalam {1..10}
melakukan
echo "$ number"
selesai
keluar 0

Aturannya pada dasarnya sama. Nilai-nilai setelah kata " dalam" membuat daftar untuk iterasi melalui dan setiap nilai dalam daftar ditempatkan dalam variabel (yaitu angka), dan setiap kali loop iterates, pernyataan antara lakukan dan dilakukan dilakukan.

Perbedaan utama adalah cara daftar itu terbentuk. Kurung kurawal {} pada dasarnya menunjukkan kisaran, dan rentang, dalam hal ini, adalah 1 hingga 10 (dua titik memisahkan awal dan akhir rentang).

Contoh ini, oleh karena itu, berjalan melalui setiap nomor antara 1 dan 10 dan menampilkan nomor ke layar sebagai berikut:

Lingkaran yang sama bisa ditulis seperti ini, dengan sintaks identik dengan contoh pertama:

untuk nomor dalam 1 2 3 4 5 6 7 8 9 10

Cara Melewatkan Angka dalam Rentang

Contoh sebelumnya menunjukkan cara menggilir antara titik awal dan akhir, jadi sekarang kita akan melihat cara melewatkan angka dalam rentang.

Bayangkan Anda ingin mengulang antara 0 dan 100 tetapi hanya menampilkan setiap nomor kesepuluh. Naskah berikut menunjukkan bagaimana melakukan hal itu:

#! / bin / bash
untuk nomor dalam {0..100..10}
melakukan
echo "$ number"
selesai
keluar 0

Aturannya pada dasarnya sama. Ada daftar, variabel, dan serangkaian pernyataan yang harus dilakukan antara dilakukan dan dilakukan . Daftar kali ini terlihat seperti ini: {0..100..10}.

Angka pertama adalah 0 dan nomor akhir adalah 100. Angka ketiga (10) adalah jumlah item dalam daftar yang akan dilewati.

Contoh di atas, oleh karena itu, menampilkan output berikut:

A More Tradisional Mencari Loop

Cara BASH menulis untuk loop agak aneh jika dibandingkan dengan bahasa pemrograman lainnya.

Anda dapat, bagaimanapun, menulis untuk loop dalam gaya yang mirip dengan bahasa pemrograman C, seperti ini:

#! / bin / bash
for ((number = 1; number <100; jumlah ++))
{
if (($ number% 5 == 0))
kemudian
echo "$ number habis dibagi 5"
fi
}
keluar 0

Loop dimulai dengan mengatur nomor variabel menjadi 1 (angka = 1 ). Pengulangan akan terus berulang sementara nilai angka kurang dari 100 ( jumlah <100 ). Nilai jumlah berubah dengan menambahkan 1 ke it setelah setiap iterasi ( nomor ++ ).

Segala sesuatu di antara kurung kurawal dilakukan melalui setiap iterasi loop.

Bit antara kawat gigi memeriksa nilai angka , membaginya dengan 5, dan membandingkan sisanya ke 0. Jika sisanya adalah 0 maka jumlahnya habis dibagi 5 dan kemudian ditampilkan di layar.

Sebagai contoh:

Jika Anda ingin mengubah ukuran langkah dari iterasi, Anda dapat mengubah nomor bagian ++ menjadi angka = angka + 2 , angka = angka + 5 , atau angka = angka + 10 dll.

Ini dapat lebih dikurangi menjadi angka + = 2 atau angka + = 5 .

Contoh Praktis

Untuk loop dapat melakukan lebih dari sekadar mengulang daftar angka. Anda benar-benar dapat menggunakan output dari perintah lain sebagai daftar.

Contoh berikut menunjukkan cara mengonversi file audio dari MP3 ke WAV :

#! / bin / bash

Daftar dalam contoh ini adalah setiap file dengan ekstensi .MP3 di folder saat ini dan variabelnya adalah file .

Perintah mpg mengubah file MP3 menjadi WAV. Namun, Anda mungkin perlu menginstal ini menggunakan manajer paket Anda terlebih dahulu.