Rentang Bash: Cara mengulangi urutan yang dihasilkan pada shell

Bash Range How Iterate Over Sequences Generated Shell

Anda dapat mengulangi urutan angka dalam bash dengan dua cara. Salah satunya dengan menggunakan seq perintah dan lainnya adalah dengan menentukan rentang di for loop. Di dalam seq perintah, urutannya dimulai dari satu, angka bertambah satu di setiap langkah dan mencetak setiap angka di setiap baris hingga batas atas secara default. Jika angkanya dimulai dari batas atas maka akan berkurang satu di setiap langkah. Biasanya, semua angka diinterpretasikan sebagai floating point tetapi jika urutannya dimulai dari bilangan bulat maka daftar bilangan bulat desimal akan dicetak. Jika perintah seq dapat dijalankan dengan sukses maka ia mengembalikan 0, jika tidak, ia mengembalikan angka bukan nol. Anda juga dapat mengulangi urutan angka menggunakan for loop dengan range. Keduanya seq perintah dan for loop dengan range ditampilkan dalam tutorial ini dengan menggunakan contoh.

Opsi perintah seq:

Anda dapat gunakan seq perintah dengan menggunakan opsi berikut.



-di dalam

Opsi ini digunakan untuk mengisi angka dengan nol di depan untuk mencetak semua angka dengan lebar yang sama.



-f format

Opsi ini digunakan untuk mencetak angka dengan format tertentu. Angka mengambang dapat diformat dengan menggunakan %f, %g dan %e sebagai karakter konversi. %g digunakan sebagai default.



-s string

Opsi ini digunakan untuk memisahkan angka dengan string. Nilai defaultnya adalah baris baru (' ').

Contoh perintah seq:

Anda dapat menerapkan perintah seq dengan tiga cara. Anda hanya dapat menggunakan batas atas atau batas atas dan bawah atau batas atas dan bawah dengan nilai kenaikan atau penurunan setiap langkah. Penggunaan yang berbeda dari perintah seq dengan opsi ditunjukkan dalam contoh berikut.

Contoh-1: perintah seq tanpa opsi

Ketika hanya batas atas yang digunakan maka angka akan dimulai dari 1 dan bertambah satu di setiap langkah. Perintah berikut akan mencetak angka dari 1 hingga 4.



$seq 4

Keluaran:

Ketika dua nilai digunakan dengan perintah seq maka nilai pertama akan digunakan sebagai angka awal dan nilai kedua akan digunakan sebagai angka akhir. Perintah berikut akan mencetak angka dari 7 hingga 15.

$seq 7 limabelas

Keluaran:

Ketika Anda akan menggunakan tiga nilai dengan perintah seq maka nilai kedua akan digunakan sebagai nilai kenaikan atau penurunan untuk setiap langkah. Untuk perintah berikut, angka awal adalah 10, angka akhir adalah 1 dan setiap langkah akan dihitung dengan pengurangan 2.

$seq 10 -2 1

Keluaran:

Contoh-2: seq dengan opsi –w

Perintah berikut akan mencetak output dengan menambahkan nol di depan untuk angka dari 1 hingga 9.

$seq -di dalam0110

Keluaran:

Contoh-3: seq dengan opsi –s

Perintah berikut menggunakan - sebagai pemisah untuk setiap nomor urut. Urutan angka akan dicetak dengan menambahkan - sebagai pemisah.

$seq -S-8

Keluaran:

Contoh-4: seq dengan opsi -f

Perintah berikut akan mencetak 10 nilai tanggal mulai dari 1. Di sini, opsi %g digunakan untuk menambahkan nomor urut dengan nilai string lainnya.

$seq -F '%g/04/2018' 10

keluaran:

Rentang Bash

Perintah berikut digunakan untuk menghasilkan urutan angka floating point menggunakan %f . Di sini, angka akan dimulai dari 3 dan bertambah 0,8 di setiap langkah dan angka terakhir akan kurang dari atau sama dengan 6.

$seq -F '%F' 3 0.8 6

Keluaran:

Contoh-5: Tulis urutannya dalam file

Jika Anda ingin menyimpan urutan nomor ke dalam file tanpa mencetak di konsol maka Anda dapat menggunakan perintah berikut. Perintah pertama akan mencetak angka ke file bernama seq.txt . Jumlahnya akan dihasilkan dari 5 hingga 20 dan bertambah 10 di setiap langkah. Perintah kedua digunakan untuk melihat isi dari seq.txt mengajukan.

$ seq 5 10 20 | kucing > seq.txt
$ cat seq.txt

Keluaran:

Contoh-6: Menggunakan seq in for loop

Misalkan, Anda ingin membuat file bernama fn1 hingga fn10 menggunakan for loop dengan seq. Buat file bernama sq1.bash dan tambahkan kode berikut. Untuk loop akan berulang sebanyak 10 kali menggunakan perintah seq dan membuat 10 file dalam urutan fn1, fn2,fn3…..fn10.

#!/bin/bash
untukSayadi dalam ``seq 10``
melakukan
menyentuhfn.$i
selesai

Keluaran:

Jalankan perintah berikut untuk mengeksekusi kode file bash dan memeriksa file dibuat atau tidak.

$pestasq1.bash
$ls

Contoh perulangan for dengan range:

Contoh-7: Untuk loop dengan range

Alternatif dari perintah seq adalah jangkauan. Anda dapat menggunakan range in for loop untuk menghasilkan urutan angka seperti seq. Tulis kode berikut dalam file bash bernama sq2.bash . Loop akan diulang sebanyak 5 kali dan mencetak akar kuadrat dari setiap angka di setiap langkah.

#!/bin/bash
untukndi dalam {1..5}
melakukan
((hasil=n*n))
dibuang $n persegi=$hasil
selesai

Keluaran:

Jalankan perintah untuk mengeksekusi skrip file.

$pestasq2.bash

Contoh-8: Untuk loop dengan range dan nilai increment

Secara default, jumlahnya bertambah satu di setiap langkah dalam rentang seperti seq. Anda juga dapat mengubah nilai kenaikan dalam rentang. Tulis kode berikut dalam file bash bernama sq3.bash . Perulangan for dalam skrip akan diulang sebanyak 5 kali, setiap langkah bertambah 2 dan mencetak semua angka ganjil antara 1 hingga 10.

#!/bin/bash
dibuang 'semua bilangan ganjil dari 1 sampai 10 adalah'
untukSayadi dalam {1..10..2}
melakukan
dibuang $i;
selesai

Keluaran:

Jalankan perintah untuk mengeksekusi skrip file.

$pestasq3.bash

Jika Anda ingin bekerja dengan urutan angka maka Anda dapat menggunakan salah satu opsi yang ditunjukkan dalam tutorial ini. Setelah menyelesaikan tutorial ini, Anda akan dapat menggunakan perintah seq dan for loop dengan jangkauan lebih efisien dalam skrip bash Anda.