Cara Menulis BASH "untuk" Gelung

Bagaimana untuk menggunakan BASH "untuk" gelung dalam skrip shell

BASH (yang bermaksud Bourne Again Shell) adalah bahasa skrip yang digunakan oleh kebanyakan sistem operasi Linux dan UNIX.

Anda boleh menjalankan arahan BASH dalam tetingkap terminal satu demi satu atau anda boleh menambah arahan ke fail teks untuk menghasilkan skrip shell.

Perkara yang bagus tentang menulis skrip shell adalah bahawa anda boleh menjalankannya lagi dan lagi. Contohnya bayangkan anda perlu menambah pengguna ke sistem, tetapkan keizinan mereka dan mengurus persekitaran awal mereka. Anda boleh menulis arahan di sekeping kertas dan jalankannya semasa anda menambah pengguna baru atau anda boleh menulis skrip tunggal dan lulus parameter ke skrip itu.

Bahasa skrip seperti BASH mempunyai pengaturcaraan yang sama seperti bahasa lain. Sebagai contoh, anda boleh menggunakan parameter import untuk mendapatkan input dari papan kekunci dan menyimpannya sebagai pembolehubah. Anda boleh mendapatkan skrip untuk melakukan tindakan tertentu berdasarkan nilai parameter masukan .

Satu bahagian penting dalam bahasa pemrograman dan skrip adalah keupayaan untuk menjalankan sekeping kod yang sama sekali lagi dan lagi.

Terdapat beberapa cara untuk mengulangi kod (juga dikenali sebagai gelung). Dalam panduan ini, anda akan ditunjukkan bagaimana untuk menulis gelung "untuk".

A untuk gelung mengulangi bahagian tertentu kod berulang-ulang. Mereka berguna supaya satu siri perintah dapat terus berlari sehingga keadaan tertentu dipenuhi, setelah itu mereka akan berhenti.

Dalam panduan ini, anda akan ditunjukkan lima cara untuk menggunakan gelung dalam skrip BASH.

Sebelum Bermula

Sebelum anda memulakan dengan contoh gelung, anda perlu membuka tetingkap terminal dan ikuti langkah-langkah berikut:

  1. Masukkan skrip mkdir ( ketahui lebih lanjut mengenai mkdir di sini )
  2. Masukkan skrip cd (ini mengubah direktori ke skrip )
  3. Masukkan nano examplen.sh (di mana n ialah contoh yang anda sedang kerjakan)
  4. Masukkan skrip
  5. Tekan CTRL + O untuk menyimpan dan CTRL + X untuk keluar
  6. Jalankan bash examplen.sh (sekali lagi, dengan n menjadi contoh yang anda bekerjasama)

Bagaimana Loop Melalui Senarai

#! / bin / bash
untuk nombor dalam 1 2 3 4 5
lakukan
echo $ number
dilakukan
keluar 0

Cara BASH menggunakan "untuk" gelung agak berbeza dengan cara kebanyakan bahasa pengaturcaraan dan skrip lain mengendalikan "untuk" gelung. Mari pecahkan skrip ke ...

Dalam BASH "untuk" semua gelung, pernyataan antara do dan dilakukan dilakukan sekali untuk setiap item dalam senarai.

Dalam contoh di atas, senarai adalah segala-galanya yang datang selepas perkataan dalam (iaitu 1 2 3 4 5).

Setiap kali gelung berulang, nilai seterusnya dalam senarai dimasukkan ke dalam pembolehubah yang ditentukan selepas perkataan "for" . Dalam gelung di atas, pembolehubah dipanggil nombor .

Pernyataan echo digunakan untuk memaparkan maklumat pada skrin.

Oleh itu, contoh ini mengambil nombor 1 hingga 5 dan outputnya satu demi satu ke skrin:

Bagaimana Loop Antara Titik Permulaan dan Akhir

Masalahnya dengan contoh di atas adalah jika anda ingin memproses senarai yang lebih besar (katakan 1 hingga 500), ia akan mengambil masa untuk menaip semua nombor di tempat pertama.

Ini membawa kita kepada contoh kedua yang menunjukkan bagaimana untuk menentukan titik mula dan akhir:

#! / bin / bash
untuk nombor dalam {1..10}
lakukan
echo "$ number"
dilakukan
keluar 0

Peraturannya pada asasnya sama. Nilai-nilai selepas perkataan " in" membuat senarai untuk berulang dan setiap nilai dalam senarai diletakkan dalam pembolehubah (iaitu nombor), dan setiap kali gelung melintang, pernyataan antara do dan dilakukan dilakukan.

Perbezaan utama adalah cara senarai dibentuk. Kurung kurung {} pada dasarnya menandakan pelbagai, dan julat, dalam kes ini, adalah 1 hingga 10 (dua titik memisahkan permulaan dan akhir julat).

Contohnya, oleh itu, berjalan melalui setiap nombor antara 1 dan 10 dan mengeluarkan nombor ke skrin seperti berikut:

Gelung yang sama boleh ditulis seperti ini, dengan sintaks sama dengan contoh pertama:

untuk nombor dalam 1 2 3 4 5 6 7 8 9 10

Bagaimana Melancarkan Nombor dalam Julat

Contoh terdahulu menunjukkan bagaimana untuk melengkung antara titik permulaan dan akhir, jadi sekarang kita akan melihat cara untuk melangkau nombor dalam julat.

Bayangkan anda mahu gelung antara 0 dan 100 tetapi hanya menunjukkan setiap nombor kesepuluh. Skrip berikut menunjukkan cara untuk melakukannya:

#! / bin / bash
untuk bilangan dalam {0..100..10}
lakukan
echo "$ number"
dilakukan
keluar 0

Peraturannya pada asasnya sama. Terdapat senarai, pembolehubah, dan satu set pernyataan yang akan dilakukan antara dilakukan dan dilakukan . Senarai kali ini kelihatan seperti ini: {0..100..10}.

Nombor pertama adalah 0 dan nombor akhir adalah 100. Nombor ketiga (10) adalah bilangan item dalam senarai yang ia akan melangkaui.

Oleh itu, contoh di atas memaparkan output berikut:

A Lebih Tradisional Mencari Gelung

Cara menulis BASH untuk gelung agak aneh apabila dibandingkan dengan bahasa pengaturcaraan lain.

Anda boleh, bagaimanapun, menulis untuk gelung dalam gaya yang sama dengan bahasa pengaturcaraan C, seperti ini:

#! / bin / bash
untuk ((nombor = 1; nombor <100; nombor ++))
{
jika (($ number% 5 == 0))
kemudian
echo "$ jumlah dibahagi dengan 5"
fi
}
keluar 0

Gelung bermula dengan menetapkan nombor pembolehubah kepada 1 (nombor = 1 ). Gelung akan menyimpan lelaran sementara nilai nombor kurang dari 100 ( nombor <100 ). Nilai perubahan nombor dengan menambahkan 1 kepadanya selepas setiap lelaran ( nombor ++ ).

Semuanya di antara pendakap kerinting dilakukan melalui setiap lelaran gelung.

Bit antara pendakap memeriksa nilai nombor , membahagikannya dengan 5, dan membandingkan baki menjadi 0. Jika bakinya adalah 0 maka nombor itu akan dibahagikan dengan 5 dan kemudian dipaparkan pada skrin.

Sebagai contoh:

Jika anda ingin menukar saiz langkah lelaran anda boleh meminda bahagian + + bahagian menjadi nombor = nombor + 2 , nombor = nombor + 5 , atau nombor = nombor + 10 dan lain-lain.

Ini boleh dikurangkan lagi ke nombor + = 2 atau nombor + = 5 .

Contoh Praktikal

Untuk gelung boleh melakukan lebih daripada senarai iterate nombor. Anda sebenarnya boleh menggunakan output arahan lain sebagai senarai.

Contoh berikut menunjukkan bagaimana untuk menukar fail audio dari MP3 ke WAV :

#! / bin / bash

Senarai dalam contoh ini adalah setiap fail dengan sambungan .MP3 dalam folder semasa dan pembolehubah adalah fail .

Perintah mpg menukarkan fail MP3 ke WAV. Walau bagaimanapun, anda mungkin perlu memasang ini menggunakan pengurus pakej anda terlebih dahulu.