Amalan terbaik dan petua untuk menulis skrip shell sebagai pro
- 2675
- 506
- Clay Weber
Shell Scripting adalah alat yang berkuasa untuk DevOps Automation. Ia membolehkan anda mengautomasikan tugas berulang, mengurus dan mengkonfigurasi infrastruktur anda, dan menyelaraskan proses penempatan anda. Walau bagaimanapun, menulis skrip shell yang berkesan memerlukan amalan terbaik mengikuti dan menggunakan teknik tertentu untuk menjadikan kod anda cekap, modular, dan dikekalkan.
Dalam artikel ini, kami akan membincangkan beberapa amalan dan petua terbaik untuk skrip shell yang dapat membantu anda dengan Automasi DevOps anda.
1. Gunakan nama pemboleh ubah yang bermakna
Menggunakan nama pemboleh ubah yang bermakna dapat membantu menjadikan kod anda lebih mudah dibaca dan dapat difahami. Ia juga memudahkan orang lain untuk mengekalkan kod anda jika mereka perlu mengubahnya pada masa akan datang.
Berikut adalah contoh menggunakan nama pemboleh ubah yang bermakna dalam skrip shell:
#!/bin/bash # Tetapkan tarikh semasa current_date = $ (tarikh +%y-%m-%d) # Cetak tarikh semasa echo "Tarikh semasa ialah: $ current_date"1234567 | #!/bin/bash # Tetapkan dateCurrent_date semasa = $ (tarikh +%y-%m-%d) # Cetak tarikh semasa "Tarikh semasa ialah: $ current_date" |
Dalam contoh ini, kami menggunakan pembolehubah "tarikh semasa" untuk menyimpan tarikh semasa dan kemudian mencetaknya menggunakan echo. Ini menjelaskan apa pembolehubah menyimpan dan bagaimana ia digunakan dalam skrip.
2. Gunakan pemeriksaan ralat
Pemeriksaan ralat adalah bahagian penting dalam skrip shell, terutamanya untuk automasi DevOps. Ia membantu anda menangkap kesilapan awal dan menghalang mereka daripada menyebabkan masalah di bawah garis.
Berikut adalah contoh menggunakan pemeriksaan ralat dalam skrip shell:
#!/bin/bash # periksa sama ada fail wujud jika [ ! -f/path/to/file]; kemudian echo "ralat: fail tidak wujud."Keluar 1 fi # teruskan dengan skrip selebihnya123456789 | #!/bin/bash # periksa sama ada fail existsif [ ! -f/path/to/file]; kemudian echo "ralat: fail tidak wujud."Keluar 1FI # Teruskan dengan skrip selebihnya |
Dalam contoh ini, kami menggunakan pernyataan IF untuk memeriksa sama ada fail wujud. Sekiranya fail tidak wujud, kami mencetak mesej ralat dan keluar dari skrip dengan kod status bukan sifar. Ini membolehkan kita menangkap kesilapan awal dan menghalang skrip daripada berterusan dan berpotensi menyebabkan lebih banyak masalah.
3. Gunakan lekukan
Lekukan adalah bahagian penting dalam menjadikan kod anda lebih mudah dibaca dan dapat difahami. Ini dapat membantu anda melihat struktur kod anda sekilas dan memudahkannya diikuti.
Berikut adalah contoh menggunakan lekukan dalam skrip shell:
#!/bin/bash # gelung melalui senarai fail untuk fail di/laluan/ke/fail/*; lakukan # semak jika fail itu direktori jika [-d "$ file"]; kemudian # Cetak nama direktori echo "direktori: $ fail" lain # cetak fail echo nama "fail: $ fail" fi selesai12345678910111213 | #!/bin/bash # gelung melalui senarai fail untuk fail di/laluan/ke/fail/*; lakukan # semak jika fail itu direktori jika [-d "$ file"]; kemudian # Cetak nama direktori echo "direktori: $ fail" lain # cetak nama fail echo "fail: $ file" fidone |
Dalam contoh ini, kami menggunakan lekukan untuk menunjukkan struktur skrip. Gelung untuk diindentikan satu tahap, dan pernyataan jika diindentasi tahap lain. Ini memudahkan untuk melihat blok kod mana yang bersarang di dalam blok lain.
4. Gunakan pilihan baris arahan
Pilihan baris arahan adalah alat yang berkuasa untuk skrip shell. Mereka membolehkan anda lulus argumen ke skrip anda dan menyesuaikan tingkah lakunya berdasarkan hujah -hujah tersebut.
Berikut adalah contoh menggunakan pilihan baris arahan dalam skrip shell:
#!/bin/bash # parse command line opsyen semasa getopts ": f: d:" opt; lakukan kes $ opt dalam f) # Tetapkan fail input input_file = $ optArg ;; d) # Tetapkan direktori output output_dir = $ optArg ;; \?) echo "pilihan tidak sah: -$ optarg"> & 2 exit 1 ;; :) echo "Pilihan -$ OptArg Memerlukan hujah."> & 2 Keluar 1;12345678910111213141516171819202122232425 | #!/bin/bash # parse command-line opsyen sementara getopts ": f: d:" opt; lakukan kes $ opt dalam f) # Tetapkan fail input input_file = $ optArg ;; d) # Tetapkan direktori output output_dir = $ optArg ;; \?) echo "pilihan tidak sah: -$ optarg"> & 2 exit 1 ;; :) echo "Pilihan -$ OptArg Memerlukan hujah."> & 2 Keluar 1; |
5. Elakkan pengekodan
Apabila membuat skrip shell untuk automasi, elakkan nilai hardcoding seperti alamat IP, laluan fail, atau butiran khusus sistem lain. Sebaliknya, gunakan pembolehubah atau fail konfigurasi untuk menyimpan dan merujuk maklumat ini. Ini akan menjadikan skrip lebih mudah alih dan lebih mudah untuk dijaga pada masa akan datang.
Contohnya, bukannya mengodkan laluan fail seperti "/Var/log/mesej", Gunakan pemboleh ubah seperti $ Log_path:
#!/bin/bash log_path = "/var/log/mesej" Cat $ Log_Path12345 | #!/bin/bash log_path = "/var/log/mesej" Cat $ Log_Path |
6. Gunakan pernyataan bersyarat
Kenyataan bersyarat berguna dalam skrip shell untuk membuat keputusan berdasarkan syarat -syarat tertentu. Kenyataan bersyarat yang paling biasa di Bash adalah pernyataan jika.
#!/bin/bash jika [-e/tmp/fail.txt] kemudian echo "fail" lain echo "fail tidak wujud" fi12345678 | #!/bin/bash jika [-e/tmp/fail.txt] kemudian echo "fail" lain echo "fail tidak wujud" fi |
Skrip ini memeriksa jika fail "/Tmp/fail.txt ” ada. Sekiranya ia berlaku, ia mencetak "Fail ada", Dan jika tidak, ia mencetak "Fail tidak wujud".
7. Gunakan fungsi
Fungsi adalah blok kod yang boleh dipanggil beberapa kali dari dalam skrip. Mereka membantu mengekalkan kod yang dianjurkan dan memudahkannya.
#!/bin/bash fungsi check_disk_space df -h check_disk_space1234567 | #!/bin/bash fungsi check_disk_space df -h check_disk_space |
Skrip ini mentakrifkan fungsi "Check_disk_space" yang menjalankan "DF -H" perintah untuk menunjukkan penggunaan ruang cakera. Fungsi ini kemudian dipanggil pada akhir skrip.
8. Gunakan pembalakan
Pembalakan adalah bahagian penting dari skrip shell untuk DevOps kerana ia membantu menyelesaikan masalah kesilapan dan menjejaki pelaksanaan skrip. Perintah logger boleh digunakan untuk menghantar mesej ke log sistem.
#!/Bin/Bash Function check_disk_space df -h logger "ruang cakera diperiksa" check_disk_space12345678 | #!/Bin/Bash Function check_disk_space df -h logger "ruang cakera diperiksa" check_disk_space |
Skrip ini menghantar mesej ke log sistem menggunakan arahan logger apabila fungsi check_disk_space dipanggil.
Kesimpulan
Scripting Shell adalah kemahiran penting untuk profesional DevOps. Dengan mengikuti amalan dan petua terbaik ini, anda boleh membuat skrip yang lebih berkesan dan boleh dipelihara untuk Pentadbiran Automasi dan Sistem. Sentiasa ingat untuk menguji skrip anda dengan teliti dan gunakan kawalan versi untuk mengesan perubahan.