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".
SEBUAH untuk 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:
-
Memasukkan skrip mkdir (pelajari lebih lanjut tentang mkdir di sini).
-
Memasukkan skrip cd (ini mengubah direktori menjadi skrip ).
-
Memasukkan nano examplen.sh (dimana n adalah contoh yang sedang Anda kerjakan).
-
Masukkan skrip.
-
tekan CTRL + O untuk menyimpan dan CTRL + X untuk keluar.
-
Menjalankan bash examplen.sh (lagi, dengan n menjadi contoh yang Anda kerjakan).
Bagaimana Mengulang Melalui Daftar
#! / bin / bashfor nomor dalam 1 2 3 4 5doecho $ numberdoneexit 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 melakukan dan selesai dilakukan sekali untuk setiap item dalam daftar. Dalam contoh di atas, daftar adalah semua yang muncul setelah kata di (yaitu 1 2 3 4 5). Setiap kali loop iterates, nilai berikutnya dalam daftar dimasukkan ke dalam variabel yang ditentukan setelah kata "untuk" . Dalam loop di atas, variabel disebut jumlah . 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: 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 / bashfor nomor dalam {1..10} doecho "$ number" selesai 0
Aturannya pada dasarnya sama. Nilai setelah kata " di" buat daftar untuk iterasi melalui dan setiap nilai dalam daftar ditempatkan dalam variabel (mis. nomor), dan setiap kali loop berulang, pernyataan antara melakukan dan selesai 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 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 / bashfor angka dalam {0..100..10} doecho "$ number" selesai 0
Aturannya pada dasarnya sama. Ada daftar, variabel, dan serangkaian pernyataan yang harus dilakukan antara melakukan dan selesai . 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: 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 / bashfor ((number = 1; number <100; number ++)) {if (($ number% 5 == 0)) thenecho "$ number habis dibagi 5" fi} exit 0
Loop dimulai dengan mengatur nomor variabel menjadi 1 (angka = 1 ). Pengulangan akan terus berulang sementara nilai angka kurang dari 100 ( angka <100 ). Nilai dari jumlah berubah dengan menambahkan 1 ke it setelah setiap iterasi ( angka ++ ). Segala sesuatu di antara kurung kurawal dilakukan melalui setiap iterasi loop. Bit antara kawat gigi memeriksa nilai a jumlah , 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 number = number + 2 , number = number + 5 , atau number = number + 10 dll. Ini dapat lebih dikurangi menjadi angka + = 2 atau angka + = 5 . 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 / bashuntuk file di ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" selesai
Daftar dalam contoh ini adalah setiap file dengan ekstensi .MP3 di folder saat ini dan variabelnya adalah a mengajukan . Itu mpg perintah mengkonversi file MP3 ke WAV. Namun, Anda mungkin perlu menginstal ini menggunakan manajer paket Anda terlebih dahulu.
Cara Memutar Antara Titik Awal dan Akhir
Cara Melewatkan Angka dalam Rentang
A More Tradisional Mencari Loop
Contoh Praktis