GNU/Linux >> Belajar Linux >  >> Linux

Contoh Bash untuk loop

Ada banyak kali dalam skrip shell ketika Anda ingin berulang kali mengeksekusi pernyataan atau sekelompok pernyataan sampai beberapa kondisi tertentu terjadi. Selain itu, Anda mungkin ingin mengeksekusi sekelompok pernyataan untuk setiap elemen dalam daftar tertentu. Shell menyediakan tiga konstruksi perulangan untuk situasi ini:konstruksi for, while, dan hingga.

Perulangan for memungkinkan Anda untuk menentukan daftar nilai. Sekelompok pernyataan dieksekusi untuk setiap nilai dalam daftar.

Untuk sintaks loop

Loop for di shell mengambil daftar kata (string) sebagai argumen. Jumlah kata dalam daftar menentukan berapa kali pernyataan dalam perulangan for dieksekusi. Sintaks untuk perulangan for adalah:

for variable in element1 element2 element3 
do
	commands 
done

dimana:

  • variabel :Ini adalah nama variabel apa saja.
  • elemen (argument_list) :Ini bisa berupa daftar kata, string, atau angka apa saja, dan bisa literal atau dihasilkan dengan menggunakan perintah shell atau metakarakter baris perintah shell.
  • perintah :Perintah dapat berupa perintah sistem operasi, program pengguna, skrip shell, atau pernyataan shell yang mengembalikan (menghasilkan) daftar.

Nilai variabel var diatur ke kata pertama dalam daftar pertama kali melalui loop. Kali kedua melalui loop, nilainya diatur ke kata kedua dalam daftar, dan seterusnya. Loop berakhir ketika var mengambil masing-masing nilai dari daftar argumen, secara bergantian, dan tidak ada argumen yang tersisa.

Daftar Argumen for Loop

Daftar argumen dalam for loop dapat berupa daftar kata any , string , atau angka . Buat daftar argumen menggunakan salah satu metode berikut (atau kombinasi metode):

  • Gunakan daftar eksplisit
  • Gunakan konten variabel
  • Gunakan argumen baris perintah
  • Gunakan substitusi perintah
  • Gunakan nama file dalam substitusi perintah

Contoh 1 :Untuk perulangan menggunakan Daftar Eksplisit untuk Menentukan Argumen

Ketika argumen didaftar untuk perulangan for, mereka disebut daftar eksplisit. Daftar eksplisit adalah bentuk paling sederhana dari daftar argumen. Loop dieksekusi sekali untuk setiap elemen daftar. Contoh berikut adalah perulangan for yang menggunakan daftar elemen eksplisit:

#!/bin/bash
for fruit in apple orange banana peach kiwi 
do
    echo "Value of fruit is: $fruit"
done

Output dari perulangan for ini adalah:

Value of fruit is: apple 
Value of fruit is: orange 
Value of fruit is: banana 
Value of fruit is: peach 
Value of fruit is: kiwi

Contoh 2:Untuk loop menggunakan Konten Variabel untuk Menentukan Argumen

Ketika argumen berada dalam variabel dan pernyataan dieksekusi, isi variabel diganti. Dalam contoh berikut, teks yang dimasukkan pada prompt menjadi nilai dari variabel INPUT. Variabel ini mewakili daftar argumen dari konstruk for. Oleh karena itu, teks dalam INPUT dipecah menjadi kata-kata atau token berdasarkan spasi.

$ cat ex1.sh 
#!/bin/bash
# Script name: ex1.sh
echo "Enter some text: \c" 
read INPUT
for var in $INPUT 
do
	echo "var contains: $var"
done
$ ./ex1.sh
Enter some text: I like the Bash shell. 
var contains: I
var contains: like
var contains: the
var contains: Korn
var contains: shell.

Contoh 3 :Untuk loop menggunakan Argumen Baris Perintah untuk Menentukan Argumen

Dalam contoh berikut, teks yang dimasukkan pada baris perintah menjadi daftar argumen dari konstruksi for. Oleh karena itu, teks baris perintah dipecah menjadi kata-kata atau token berdasarkan spasi.

$ cat ex2.sh
#!/bin/bash
# Script name: ex2.sh
for var in $* 
do
	echo "command line contains: $var"
done
$ ./ex2.sh I am The Geek.
command line contains: I
command line contains: am
command line contains: The
command line contains: Geek.

Contoh 4 :Untuk loop Menggunakan Substitusi Perintah untuk Menentukan Argumen

Sintaks untuk substitusi perintah di shell Bash adalah:

for var in `cmd_sub`

Contoh berikut menggunakan output dari perintah cat sebagai daftar argumen.

$ cat fruit1 
apple 
orange 
banana 
peach
kiwi
$ cat ex4.sh 
#!/bin/bash
# Script name: ex4.sh
for var in `cat fruit2` 
do
	echo "var contains: $var"
done
$ ./ex4.sh
var contains: Apple 
var contains: Orange 
var contains: Banana 
var contains: Peach 
var contains: Kiwi

Jika file yang berisi daftar itu dalam format berikut, apa hasil dari perulangan for.

$ cat fruit3
Apple Orange Banana Peach Kiwi
$ cat ex5.sh 
#!/bin/bash
# Script name: ex5.sh
for var in `cat fruit3` 
do
	echo "$var"
done
$ ./ex5.sh
Apple 
Orange 
Banana 
Peach 
Kiwi

Pada contoh di atas, hasilnya tidak berubah. Variabel IFS adalah sembarang spasi, jadi carriage return dan spasi atau tab memisahkan setiap bidang dalam file.

Contoh 5:Untuk loop menggunakan Nama File di Substitusi Perintah untuk Menentukan Argumen

Beberapa perintah memberikan nama file dan nama direktori sebagai outputnya. Pada contoh berikut, shell menggantikan output dari perintah, ls /etc/p*(/etc/passwd/etc/profiledan seterusnya), sebagai daftar argumen untuk loop for.

$ cat ex7.sh 
#!/bin/bash
# Script name: ex7.sh
for var in `ls /etc/p*`
do
	print "var contains: $var"
done
# ./x.sh 
var contains: /etc/passwd
var contains: /etc/passwd-
var contains: /etc/printcap
var contains: /etc/profile
....
Contoh bash if loop (jika maka fi, jika maka elif fi, jika maka else fi)


Linux
  1. Cara menulis loop di Bash

  2. Panduan Bash For Loop dan Contohnya

  3. Contoh Bash For Loop dan While Loop

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

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

  3. Bersarang untuk loop

  1. Sejajarkan Bash Untuk Loop?

  2. Basa'?

  3. 12 Contoh Bash For Loop untuk Scripting Shell Linux Anda