Menulis Cekap untuk Gelung dalam Petua dan Trik Bash

Menulis Cekap untuk Gelung dalam Petua dan Trik Bash

Bash adalah bahasa skrip shell yang popular yang biasa digunakan dalam sistem operasi Linux dan Unix. Salah satu pembinaan yang paling biasa digunakan dalam bash adalah untuk gelung, yang digunakan untuk melepasi satu set item dan melakukan tindakan tertentu pada setiap item. Walau bagaimanapun, penting untuk menulis dengan cekap untuk gelung untuk mengoptimumkan prestasi skrip.

Ia juga penting untuk diperhatikan bahawa Bash adalah salah satu daripada banyak bahasa skrip yang tersedia, dan keupayaannya mungkin terhad dalam senario tertentu. Sekiranya anda mendapati bahawa skrip bash anda menjadi terlalu kompleks atau sukar untuk dioptimumkan, anda mungkin ingin mempertimbangkan menggunakan bahasa skrip yang lebih kuat, seperti Python atau Perl.

Dalam tutorial ini, kami akan meneroka beberapa petua dan cara untuk menulis dengan cekap untuk gelung di Bash.

Petua #1: Gunakan sintaks yang betul

Sintaks untuk asas untuk gelung di bash adalah seperti berikut:

untuk pemboleh ubah dalam [senarai] lakukan [perintah] dilakukan
1234untuk pemboleh ubah dalam [senarai] lakukan [perintah] dilakukan

[Senarai] boleh menjadi satu set item yang dipisahkan oleh ruang, atau ia boleh menjadi pelbagai nombor yang ditentukan menggunakan sintaks start ... end. Penting untuk menggunakan sintaks yang betul untuk kes penggunaan khusus anda.

Contohnya, jika anda melelehkan satu set item yang besar, lebih baik menggunakan sintaks julat dan bukannya menyenaraikan setiap item secara individu. Ini dapat membantu meningkatkan prestasi dengan mengurangkan bilangan lelaran yang diperlukan untuk melengkapkan gelung.

Petua #2: Kurangkan arahan luaran

Setiap kali anda melaksanakan arahan dalam gelung untuk, ia menimbulkan penalti prestasi kerana overhead melancarkan proses baru. Oleh itu, adalah penting untuk meminimumkan bilangan arahan luaran yang anda gunakan dalam gelung anda.

Sebagai contoh, bukannya menggunakan arahan luaran untuk mengira bilangan fail dalam direktori, anda boleh menggunakan arahan bash terbina dalam untuk mencapai perkara yang sama:

file_count = 0 untuk fail dalam/path/to/directory/* do ((file_count ++)) selesai
12345file_count = 0for fail dalam/path/to/directory/*do ((file_count ++)) selesai

Ini menghapuskan keperluan untuk arahan luaran, yang dapat membantu meningkatkan prestasi.

Petua #3: Gunakan tatasusunan

Menggunakan array untuk menyimpan item yang anda mahu berulang dapat membantu meningkatkan kecekapan anda untuk gelung. Ini kerana tatasusunan lebih cekap daripada menggunakan rentetan nilai yang dipisahkan ruang.

Sebagai contoh, bukannya menggunakan senarai nilai yang dipisahkan ruang seperti ini:

untuk nilai dalam nilai1 nilai2 nilai3 nilai4 lakukan [perintah] dilakukan
1234Untuk nilai dalam nilai1 nilai2 nilai3 nilai4do [perintah] dilakukan

Anda boleh menggunakan array seperti ini:

nilai = ("value1" "value2" "value3" "value4") untuk nilai dalam "value [@]" do [command (s)] selesai
12345nilai = ("value1" "value2" "value3" "value4") untuk nilai dalam "value [@]" do [command (s)] selesai

Ini dapat membantu meningkatkan prestasi dengan mengurangkan overhead menghuraikan rentetan ke dalam nilai individu.

Petua #4: Gunakan pengembangan parameter shell

Menggunakan pengembangan parameter shell dapat membantu mempermudah gelung anda dan meningkatkan prestasi dengan mengurangkan bilangan arahan yang anda perlukan untuk melaksanakannya.

Sebagai contoh, bukannya menggunakan arahan luaran untuk mencari panjang array, anda boleh menggunakan pengembangan parameter shell seperti ini:

nilai = ("value1" "value2" "value3" "value4") untuk ((i = 0; i<$#values[@]; i++)) do [command(s) "values[i]"] done
12345nilai = ("value1" "value2" "value3" "value4") untuk ((i = 0; i<$#values[@]; i++))do [command(s) "values[i]"]done

Ini menghapuskan keperluan untuk arahan luaran, yang dapat membantu meningkatkan prestasi.

Petua #5: Gunakan arahan terbina dalam Bash

Bash mempunyai beberapa arahan terbina dalam yang dapat membantu meningkatkan kecekapan anda untuk gelung. Contohnya, anda boleh menggunakan arahan printf untuk mencetak output diformat dalam gelung anda, yang boleh lebih cekap daripada menggunakan arahan luaran seperti echo.

untuk saya di 1 ... 10 do printf "nombor %d \ n" "$ i" selesai
1234untuk saya di 1 ... 10 do printf "nombor %d \ n" "$ i" selesai

Ini dapat membantu meningkatkan prestasi dengan mengurangkan overhead melancarkan arahan luaran.

Kesimpulan

Kesimpulannya, menulis yang cekap untuk gelung di bash dapat meningkatkan prestasi skrip anda dengan ketara dan mengurangkan masa pelaksanaannya. Dengan melaksanakan petua dan helah yang dibincangkan dalam artikel ini, seperti meminimumkan penggunaan arahan luaran, mengurangkan bilangan lelaran, dan menggunakan teknik pengarahan, anda dapat mengoptimumkan skrip bash anda untuk memproses data dengan lebih cepat dan cekap.

Tidak kira bahasa yang anda pilih, kunci untuk menulis skrip yang cekap adalah untuk sentiasa menganalisis dan mengoptimumkan kod anda, menguji pendekatan yang berbeza, dan sentiasa menjaga prestasi dalam fikiran. Dengan prinsip -prinsip ini, anda boleh membuat skrip yang mantap dan cekap yang dapat mengendalikan tugas pemprosesan data yang paling menuntut.