Bash ‘Untuk’ Loop: Tutorial dan Contoh

Bash (Bourne Again Shell) adalah prompt perintah shell dan bahasa scripting di sistem operasi GNU/Linux. Ini adalah shell default untuk sebagian besar distribusi Linux.

Seperti kebanyakan bahasa scripting, Bash menyediakan sintaks loop untuk mengulang tugas serupa beberapa kali. Pada artikel ini, kita akan belajar bagaimana menggunakan for loop di Bash.

pengantar

Skrip Bash yang khas berisi serangkaian perintah yang akan dieksekusi satu demi satu. Variabel dapat digunakan untuk menyimpan string, nilai indeks integer, hasil dari suatu perintah, dll. Loop diperlukan ketika pengguna ingin menjalankan perintah tertentu beberapa kali. Ini adalah penggunaan khusus ketika output dari satu perintah dalam bentuk daftar, dan pada setiap hasil, dalam daftar, perintah kedua harus dijalankan.

Sintaks Umum

Sintaks umum untuk for loop di Bash adalah:

untuk <variabel> di <rentang/daftar> lakukan…… selesai

Di sini, <variabel> adalah variabel Bash, yang harus merupakan nama variabel shell Linux yang valid, yaitu, nama tersebut berisi kombinasi huruf(az, AZ), angka (0-9) dan garis bawah ( _ ) dan harus dimulai dengan huruf atau garis bawah.

<kisaran / daftar> adalah baik berbagai kebiasaan indeks integer yang akan dilingkarkan atau daftar kustom bilangan bulat atau string. Itu juga dapat berisi perintah Linux lain, namun, output dari perintah tersebut harus dipisahkan oleh spasi atau karakter baris baru, yaitu, dapat diuraikan oleh Bash ke dalam daftar (Daftar di Bash pada dasarnya adalah kumpulan nilai yang dipisahkan oleh spasi atau baris baru ).

Perintah apapun yang akan dieksekusi harus ditempatkan di dalam blok do..done.

Mari kita lihat beberapa contoh sederhana.

Looping pada rentang nilai Integer : Kode berikut membuat direktori bernama dir1, dir2, dir3 hingga dir10.

untuk saya di {1..10} melakukan mkdir dir$i done

Perulangan pada daftar nilai tetap: Kode berikut mencetak setiap string atau bilangan bulat dalam daftar tetap yang diberikan.

untuk saya di Halo 1 2 3 Sampai jumpa! lakukan echo $aku selesai

Looping pada output dari sebuah perintah: Kode berikut mengulang output dari ls dan mencetak nama setiap file dalam format yang diberikan.

untuk saya di `ls` lakukan echo “Nama file adalah $i” selesai

Sintaks berbasis ekspresi

Sintaks berbasis ekspresi yang mirip dengan bahasa pemrograman C juga dimungkinkan di Bash:

untuk ((Ekspresi 1; Ekspresi 2; Ekspresi 3)) lakukan…… selesai

Di sini, Ekspresi 1 adalah inisialisasi variabel indeks. Ekspresi 2 adalah kondisi ketika loop harus keluar; kondisi ini diperiksa di setiap iterasi. Ekspresi 3 menentukan kenaikan/penurunan/modifikasi nilai variabel indeks

Contoh berikut hanya mencetak nilai dari 0 hingga 4:

for ((i=0;i<5;i++)) lakukan echo $i done

Contoh berikut membuat loop tak terbatas, karena tidak ada ekspresi yang ditentukan:

untuk (( ; ; )) lakukan echo “Tekan Ctrl-C untuk berhenti” selesai

Istirahat dan Lanjutkan

Pernyataan Break untuk Keluar Bersyarat

Kita juga dapat menggunakan pernyataan kondisional jika di dalam loop. jika pernyataan dapat digunakan dengan istirahat pernyataan, untuk keluar bersyarat dari loop.

for ((i=0;i<10;i++)) do if [[ $i -eq 5 ]] then break else echo $i; sudah selesai

Loop di atas akan mencetak angka dari 0 sampai 4. Kemudian ketika nilai i adalah 5, maka akan keluar dari loop. Ini adalah penggunaan khusus ketika sebuah loop akan keluar ketika sebuah perintah memberikan output tertentu. Misalnya, perulangan berikut terputus jika dan ketika menemukan file kosong.

untuk file di `ls` do flen=`wc -c $file` if [[ “$flen” = “0 $file” ]] then echo “$file is empty” break else echo $flen fi selesai

Perintah wc -c <filename> mencetak jumlah baris dalam file <filename>. Itu mencetaknya dalam format <no_of_lines> <filename>, misalnya, 10 test.txt. Kita keluar dari loop ketika jumlah baris adalah 0, yaitu, file kosong.

Lanjutkan Pernyataan untuk Melewati Iterasi Secara Bersyarat

Mirip dengan C dan banyak bahasa pemrograman lainnya, bash juga memiliki pernyataan continue, untuk melewati bagian iterasi yang tersisa dalam satu lingkaran jika kondisi tertentu terpenuhi.

for ((i=0;i<10;i++)) do if [[ $i -eq 5 ]] lalu lanjutkan fi echo $i; selesai

Loop di atas akan mencetak angka dari 0 hingga 10, kecuali 5, karena selama iterasi i=5 ada pernyataan continue, yang akan melewatkan sisa kode dalam loop di awal dengan iterasi i=6.

Dalam contoh berikut, kita mencetak jumlah baris dalam file, dan iterasi tertentu akan berlanjut jika itu adalah direktori dan bukan file.

untuk file di `ls` lakukan if [[ -d $file ]] lalu lanjutkan fi wc -c “$file” done

[[ -d $file ]] memeriksa apakah file tersebut adalah direktori. Jika ya, maka kita lompat ke file berikutnya, yaitu iterasi berikutnya. Jika bukan direktori, kita mencetak jumlah baris dalam file menggunakan perintah wc, seperti yang ditunjukkan sebelumnya juga.

Menggunakan Loop: Script dan Command Line

Sintaks loop dapat digunakan di Bash shell secara langsung, atau dari file skrip shell. Setelah sintaks for loop dimasukkan pada shell, shell melanjutkan prompt untuk membiarkan pengguna melanjutkan perintah yang akan di-loop.

Atau pengguna dapat menyimpan ini dalam file skrip dan menjalankan file skrip.

#! / Bin / bash di awal menentukan interpreter yang akan digunakan ketika file tersebut dijalankan. Meskipun Bash adalah shell yang paling umum digunakan saat ini, beberapa pengguna lebih memilih shell seperti zsh, yang harus ditentukan sebagai pengganti bash di awal file ini.

Untuk memberikan izin eksekusi untuk file ini, jalankan:

chmod +x test.sh

Terakhir, untuk menjalankan file, jalankan:

./test.sh

Kesimpulan

untuk loop dalam Bash adalah fitur sederhana cantik tapi memiliki penggunaannya di hampir setiap jenis skenario scripting yang kompleks. Mempelajarinya akan sangat membantu baik Anda pengguna Linux biasa atau mahir, atau mulai mempelajari otomatisasi untuk tugas Administrasi Sistem dan DevOps.

Related Posts