Bash Range: Cara mengulangi urutan yang dihasilkan pada shell

Bash Range How Iterate Over Sequences Generated Shell



Anda boleh mengulangi urutan nombor dalam bash dengan dua cara. Salah satunya adalah dengan menggunakan seq perintah dan yang lain adalah dengan menentukan range in untuk loop. Dalam seq perintah, urutan bermula dari satu, kenaikan nombor satu demi satu dalam setiap langkah dan mencetak setiap nombor di setiap baris hingga batas atas secara lalai. Sekiranya nombor itu bermula dari had atas maka ia akan menurun satu demi satu dalam setiap langkah. Biasanya, semua nombor ditafsirkan sebagai titik terapung tetapi jika urutannya bermula dari bilangan bulat maka senarai bilangan bulat perpuluhan akan dicetak. Sekiranya perintah seq dapat dilaksanakan dengan jayanya maka ia mengembalikan 0, jika tidak, ia mengembalikan nombor bukan sifar. Anda juga boleh mengulang urutan nombor menggunakan gelung dengan julat. Kedua-duanya seq perintah dan untuk gelung dengan jarak ditunjukkan dalam tutorial ini dengan menggunakan contoh.

Pilihan arahan seq:

Anda boleh menggunakan seq arahan dengan menggunakan pilihan berikut.







-dalam

Pilihan ini digunakan untuk memasukkan angka dengan angka nol terkemuka untuk mencetak semua nombor dengan lebar yang sama.



-f format

Pilihan ini digunakan untuk mencetak nombor dengan format tertentu. Nombor terapung dapat diformat dengan menggunakan% f,% g dan% e sebagai watak penukaran. % g digunakan sebagai lalai.



tali

Pilihan ini digunakan untuk memisahkan nombor dengan rentetan. Nilai lalai adalah barisan baru (‘ ​​n’).





Contoh arahan seq:

Anda boleh menggunakan perintah seq dengan tiga cara. Anda hanya boleh menggunakan had atas atau had atas dan bawah atau had atas dan bawah dengan kenaikan atau penurunan setiap langkah. Penggunaan perintah seq yang berbeza dengan pilihan ditunjukkan dalam contoh berikut.

Contoh-1: perintah seq tanpa pilihan

Apabila hanya had atas digunakan maka angka akan bermula dari 1 dan kenaikan satu demi satu dalam setiap langkah. Perintah berikut akan mencetak nombor dari 1 hingga 4.



$seq 4

Pengeluaran:

Apabila kedua-dua nilai tersebut digunakan dengan perintah seq maka nilai pertama akan digunakan sebagai nombor permulaan dan nilai kedua akan digunakan sebagai nombor akhir. Perintah berikut akan mencetak nombor dari 7 hingga 15.

$seq 7 lima belas

Pengeluaran:

Apabila anda akan menggunakan tiga nilai dengan perintah seq maka nilai kedua akan digunakan sebagai nilai kenaikan atau penurunan untuk setiap langkah. Untuk arahan berikut, nombor permulaan adalah 10, nombor akhir adalah 1 dan setiap langkah akan dikira dengan pengurangan 2.

$seq 10 -2 1

Pengeluaran:

Contoh-2: seq dengan pilihan –w

Perintah berikut akan mencetak output dengan menambahkan sifar depan untuk nombor dari 1 hingga 9.

$seq -dalam0110

Pengeluaran:

Contoh-3: pilihan seq dengan –s

Perintah berikut menggunakan - sebagai pemisah untuk setiap nombor urutan. Urutan nombor akan dicetak dengan menambahkan - sebagai pemisah.

$seq -s-8

Pengeluaran:

Contoh-4: seq dengan pilihan -f

Perintah berikut akan mencetak 10 nilai tarikh bermula dari 1. Di sini, pilihan% g digunakan untuk menambahkan nombor urutan dengan nilai rentetan yang lain.

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

pengeluaran:

Julat Bash

Perintah berikut digunakan untuk menghasilkan urutan nombor titik terapung menggunakan% f. Di sini, nombor akan bermula dari 3 dan kenaikan 0.8 pada setiap langkah dan nombor terakhir akan kurang dari atau sama dengan 6.

$seq -f '% f' 3 0.8 6

Pengeluaran:

Contoh-5: Tulis urutan dalam fail

Sekiranya anda ingin menyimpan urutan nombor ke dalam fail tanpa mencetak di konsol, maka anda boleh menggunakan perintah berikut. Perintah pertama akan mencetak nombor ke fail bernama seq.txt . Angka tersebut akan dijana dari 5 hingga 20 dan kenaikan sebanyak 10 dalam setiap langkah. Perintah kedua digunakan untuk melihat kandungan seq.txt fail.

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

Pengeluaran:

Contoh-6: Menggunakan seq in untuk gelung

Katakan, anda ingin membuat fail bernama fn1 hingga fn10 menggunakan loop dengan seq. Buat fail bernama sq1.bash dan tambahkan kod berikut. Untuk gelung akan berulang selama 10 kali menggunakan perintah seq dan buat 10 fail mengikut urutan fn1, fn2, fn3… ..fn10.

#! / bin / bash
untukidalam 'seq 10'
buat
sentuhanfn.$ i
selesai

Pengeluaran:

Jalankan arahan berikut untuk melaksanakan kod fail bash dan periksa fail dibuat atau tidak.

$bashsq1.bash
$ls

Contoh untuk gelung dengan julat:

Contoh-7: Untuk gelung dengan julat

Alternatif perintah seq adalah pelbagai. Anda boleh menggunakan range in untuk loop untuk menghasilkan urutan nombor seperti seq. Tuliskan kod berikut dalam fail bash bernama sq2.bash . Gelung akan berulang selama 5 kali dan mencetak punca kuasa dua nombor dalam setiap langkah.

#! / bin / bash
untukndalam {1..5}
buat
((hasil= n*n))
membuang $ n segi empat sama=hasil $
selesai

Pengeluaran:

Jalankan arahan untuk melaksanakan skrip fail.

$bashsq2.bash

Contoh-8: Untuk gelung dengan nilai julat dan kenaikan

Secara lalai, jumlahnya bertambah satu demi satu dalam setiap langkah dalam jarak seperti seq. Anda juga boleh mengubah nilai kenaikan dalam julat. Tuliskan kod berikut dalam fail bash bernama sq3.bash . Gelung untuk dalam skrip akan berulang selama 5 kali, setiap langkah ditingkatkan oleh 2 dan mencetak semua angka ganjil antara 1 hingga 10.

#! / bin / bash
membuang 'semua nombor ganjil dari 1 hingga 10 adalah'
untukidalam {1..10..2}
buat
membuang $ i;
selesai

Pengeluaran:

Jalankan arahan untuk melaksanakan skrip fail.

$bashsq3.bash

Sekiranya anda ingin menggunakan urutan nombor maka anda boleh menggunakan salah satu pilihan yang ditunjukkan dalam tutorial ini. Setelah menyelesaikan tutorial ini, anda akan dapat menggunakan perintah seq dan untuk loop dengan jangkauan dengan lebih cekap dalam skrip bash anda.