Praktik dan tips terbaik untuk menulis skrip shell sebagai pro

Praktik dan tips terbaik untuk menulis skrip shell sebagai pro

Shell Scripting adalah alat yang ampuh untuk DevOps Automation. Ini memungkinkan Anda untuk mengotomatiskan tugas yang berulang, mengelola dan mengkonfigurasi infrastruktur Anda, dan merampingkan proses penyebaran Anda. Namun, menulis skrip shell yang efektif membutuhkan praktik terbaik berikut dan menggunakan teknik tertentu untuk membuat kode Anda efisien, modular, dan dapat dipelihara.

Di artikel ini, kami akan membahas beberapa praktik dan tips terbaik untuk skrip shell yang dapat membantu Anda dengan otomatisasi devops Anda.

1. Gunakan nama variabel yang bermakna

Menggunakan nama variabel yang bermakna dapat membantu membuat kode Anda lebih mudah dibaca dan dimengerti. Ini juga memudahkan orang lain untuk mempertahankan kode Anda jika mereka perlu memodifikasinya di masa depan.

Berikut adalah contoh menggunakan nama variabel yang bermakna dalam skrip shell:

#!/bin/bash # Setel tanggal saat ini Current_date = $ (tanggal +%y-%m-%d) # cetak tanggal saat ini echo "Tanggal saat ini adalah: $ current_date"
1234567#!/bin/bash # Setel datecurrent_date saat ini = $ (tanggal +%y-%m-%d) # cetak dateecho saat ini "Tanggal saat ini adalah: $ current_date"

Dalam contoh ini, kami menggunakan variabel "tanggal sekarang" Untuk menyimpan tanggal saat ini dan kemudian mencetaknya menggunakan Echo. Ini membuatnya jelas apa yang disimpan variabel dan bagaimana itu digunakan dalam skrip.

2. Gunakan pemeriksaan kesalahan

Pemeriksaan kesalahan adalah bagian penting dari skrip shell, terutama untuk otomatisasi devops. Ini membantu Anda menangkap kesalahan sejak dini dan mencegah mereka menyebabkan masalah di telepon.

Berikut adalah contoh menggunakan kesalahan pemeriksaan dalam skrip shell:

#!/bin/bash # periksa apakah ada file jika [ ! -f/path/to/file]; Lalu echo "error: file tidak ada."Keluar 1 fi # lanjutkan dengan sisa skrip
123456789#!/bin/bash # Periksa apakah ada file yang ada [ ! -f/path/to/file]; Lalu echo "error: file tidak ada."Keluar 1fi # Lanjutkan dengan sisa skrip

Dalam contoh ini, kami menggunakan pernyataan IF untuk memeriksa apakah ada file. Jika file tidak ada, kami mencetak pesan kesalahan dan keluar dari skrip dengan kode status yang tidak nol. Ini memungkinkan kita menangkap kesalahan sejak dini dan mencegah skrip terus berlanjut dan berpotensi menyebabkan lebih banyak masalah.

3. Gunakan indentasi

Indentasi adalah bagian penting dari membuat kode Anda lebih mudah dibaca dan dimengerti. Ini dapat membantu Anda melihat struktur kode Anda sekilas dan membuatnya lebih mudah diikuti.

Berikut adalah contoh menggunakan lekukan dalam skrip shell:

#!/bin/bash # loop melalui daftar file untuk file di/path/to/file/*; Lakukan # periksa apakah file tersebut adalah direktori jika [-d ​​"$ file"]; lalu # cetak nama direktori echo "direktori: $ file" else # cetak nama file echo "File: $ file" fi selesai
12345678910111213#!/bin/bash # loop melalui daftar file untuk file di/path/to/file/*; Lakukan # periksa apakah file tersebut adalah direktori jika [-d ​​"$ file"]; lalu # cetak nama direktori echo "direktori: $ file" else # cetak nama file echo "File: $ file" fidone

Dalam contoh ini, kami menggunakan indentasi untuk menunjukkan struktur skrip. Loop untuk diindentasi satu level, dan pernyataan IF diindentasi level lain. Ini membuatnya mudah untuk melihat blok kode mana yang bersarang di dalam blok lainnya.

4. Gunakan opsi baris perintah

Opsi baris perintah adalah alat yang ampuh untuk skrip shell. Mereka memungkinkan Anda untuk meneruskan argumen ke skrip Anda dan menyesuaikan perilakunya berdasarkan argumen tersebut.

Berikut adalah contoh menggunakan opsi baris perintah dalam skrip shell:

#!/Bin/Bash # Parse Command-Line Options sementara getOpts ": f: d:" opt; do case $ opt in f) # atur file input input_file = $ opTarg ;; d) # Atur direktori output output_dir = $ opTarg ;; \?) Echo "Opsi tidak valid: -$ OptArg"> & 2 keluar 1 ;; :) echo "Opsi -$ OptARG membutuhkan argumen."> & 2 keluar 1 ;; esac selesai # lakukan sesuatu dengan file input dan direktori output
12345678910111213141516171819202122232425#!/BIN/BASH # PARSE PARSE Command-line Options Getopts ": f: d:" opt; do case $ opt in f) # atur file input input_file = $ opTarg ;; d) # Atur direktori output output_dir = $ opTarg ;; \?) Echo "Opsi tidak valid: -$ OptArg"> & 2 keluar 1 ;; :) echo "Opsi -$ OptARG membutuhkan argumen."> & 2 keluar 1 ;; esacdone # lakukan sesuatu dengan file input dan direktori output

5. Hindari hardcoding

Saat membuat skrip shell untuk otomatisasi, hindari nilai hardcoding seperti alamat IP, jalur file, atau detail khusus sistem lainnya. Sebaliknya, gunakan variabel atau file konfigurasi untuk menyimpan dan merujuk informasi ini. Ini akan membuat skrip lebih portabel dan lebih mudah dipertahankan di masa depan.

Misalnya, alih -alih menggunakan Hardcoding Path File seperti “/Var/log/pesan”, Gunakan variabel seperti $ Log_path:

#!/bin/bash log_path = "/var/log/pesan" cat $ log_path
12345#!/bin/bash log_path = "/var/log/pesan" cat $ log_path

6. Gunakan pernyataan bersyarat

Pernyataan bersyarat berguna dalam skrip shell untuk membuat keputusan berdasarkan kondisi tertentu. Pernyataan bersyarat yang paling umum dalam Bash adalah pernyataan IF.

#!/bin/bash if [-e/tmp/file.txt] lalu echo file "file ada" else echo "tidak ada" fi
12345678#!/bin/bash if [-e/tmp/file.txt] lalu echo file "file ada" else echo "tidak ada" fi

Skrip ini memeriksa apakah file “/TMP/file.txt" ada. Jika ya, dicetak "File ada", Dan jika tidak, itu mencetak "File tidak ada".

7. Gunakan fungsi

Fungsi adalah blok kode yang dapat dipanggil beberapa kali dari dalam skrip. Mereka membantu menjaga kode tetap teratur dan membuatnya lebih mudah untuk mempertahankan.

#!/Bin/Bash Function check_disk_space df -h check_disk_space
1234567#!/Bin/Bash Function check_disk_space df -h check_disk_space

Skrip ini mendefinisikan fungsi “Check_disk_space” itu menjalankan "DF -H" Perintah untuk menunjukkan penggunaan ruang disk. Fungsinya kemudian dipanggil di akhir naskah.

8. Gunakan logging

Logging adalah bagian penting dari scripting shell untuk DevOps karena membantu untuk memecahkan kesalahan dan melacak eksekusi skrip. Perintah logger dapat digunakan untuk mengirim pesan ke log sistem.

#!/Bin/Bash Function check_disk_space df -h Logger "Ruang disk diperiksa" check_disk_space
12345678#!/Bin/Bash Function check_disk_space df -h Logger "Ruang disk diperiksa" check_disk_space

Script ini mengirimkan pesan ke log sistem menggunakan perintah logger saat fungsi check_disk_space dipanggil.

Kesimpulan

Shell Scripting adalah keterampilan penting bagi para profesional DevOps. Dengan mengikuti praktik dan tips terbaik ini, Anda dapat membuat skrip yang lebih efektif dan dapat dipelihara untuk otomatisasi dan administrasi sistem. Selalu ingat untuk menguji skrip Anda secara menyeluruh dan menggunakan kontrol versi untuk melacak perubahan.