Teknik skrip bash lanjutan untuk pentadbir linux
- 1813
- 159
- Noah Torp
Bash adalah bahasa skrip yang kuat yang digunakan secara meluas dalam persekitaran Linux dan Unix untuk Pentadbiran Automasi dan Sistem. Dengan skrip bash, pentadbir sistem boleh mengautomasikan tugas berulang, menguruskan pelayan, dan melaksanakan operasi yang kompleks. Walau bagaimanapun, menguasai skrip bash memerlukan lebih daripada sekadar pengetahuan asas sintaks dan pembolehubah.
Dalam artikel ini, kami akan meneroka beberapa teknik skrip bash maju dan amalan terbaik yang dapat membantu anda menjadi pengaturcara bash yang lebih mahir.
1. Memodulasi kod anda
Semasa skrip di bash, penting untuk menulis kod modular dan boleh diguna semula. Modulariti membolehkan anda memisahkan fungsi menjadi skrip yang lebih kecil dan lebih mudah diurus yang boleh digunakan semula di pelbagai projek atau persekitaran. Ini dapat menjimatkan masa dan mengurangkan kesilapan. Anda boleh mencapai modulariti dalam bash dengan mewujudkan fungsi, perpustakaan, dan modul.
#!/bin/bash # Fungsi untuk mengira fungsi jumlah kiraan_sum return $ (($ 1 + $ 2)) # Fungsi untuk keluar skrip pada fungsi ralat exit_on_error echo $ 1 | teh -a/var/log/custom_error.Log Exit 1 # Fungsi untuk memasang fungsi pelayan pangkalan data MySQL Install_package sudo apt-get update sudo apt-get Install123456789101112131415161718192021222324 | #!/bin/bash # Fungsi untuk mengira sumfunction calculate_sum return $ (($ 1 + $ 2)) # berfungsi untuk keluar skrip pada errorfunction exit_on_error echo $ 1 | teh -a/var/log/custom_error.Log Exit 1 # Fungsi untuk memasang MySQL Database ServerFunction Install_package sudo apt-get update sudo apt-get install $ 1 -y # utama scriptcalculate_sum 2 4install_mysqlinstall_php |
2. Mengendalikan kesilapan dan pengecualian
Seperti mana -mana bahasa pengaturcaraan, kesilapan dan pengecualian boleh berlaku dalam skrip bash. Oleh itu, adalah penting untuk mengendalikan kesilapan dan pengecualian dengan betul untuk memastikan skrip anda berjalan lancar dan cekap. Anda boleh menggunakan 'set -e' perintah untuk menamatkan skrip dengan segera jika ralat berlaku. Di samping itu, anda boleh menggunakan arahan 'perangkap' untuk menangkap isyarat dan mengendalikan pengecualian dengan anggun.
#!/Bin/Bash set -e perangkap "echo 'ralat: skrip ditamatkan'> & 2" err # perintah untuk memeriksa sama ada fail wujud jika [ ! -f/path/to/file]; kemudian echo 'ralat: fail tidak wujud'> & 2 keluar 1 fi # perintah untuk mengeluarkan fail rm/path/to/file || echo 'error: Tidak dapat mengeluarkan fail'> & 2 keluar 1 # perintah untuk memulakan semula perkhidmatan web pelayan web apache apache2 restart || echo 'ralat: Tidak dapat memulakan semula Apache'> & 2 Keluar 112345678910111213141516171819202122 | #!/Bin/Bash Set -Trap "Echo 'Ralat: Skrip ditamatkan'> & 2" err # perintah untuk memeriksa sama ada fail existsif [ ! -f/path/to/file]; kemudian echo 'ralat: fail tidak wujud'> & 2 keluar 1fi # perintah untuk mengeluarkan filerm/path/to/file || echo 'ralat: tidak dapat mengeluarkan fail'> & 2 keluar 1 # perintah untuk memulakan semula perkhidmatan web perkhidmatan apache apache2 restart || echo 'ralat: Tidak dapat memulakan semula Apache'> & 2 Keluar 1 |
Dalam contoh ini, kami telah menggunakan 'set -e' perintah untuk menamatkan skrip dengan segera jika ralat berlaku. Kami juga telah menggunakan 'perangkap' perintah untuk menangkap isyarat dan mengendalikan pengecualian dengan anggun.
3. Menggunakan tatasusunan dan array bersekutu
Bash menyokong kedua -dua array yang diindeks dan bersekutu, yang boleh digunakan untuk menyimpan dan memanipulasi data dengan cekap. Arahan yang diindeks adalah koleksi unsur -unsur yang disimpan dalam urutan tertentu, sementara array bersekutu adalah koleksi nilai kunci Pasangan. Anda boleh menggunakan array untuk menyimpan output arahan, memproses fail, dan melakukan operasi lain.
#!/bin/bash # Contoh array yang diindeks buah -buahan = ("epal" "pisang" "oren" "anggur") echo "Buah kedua adalah $ buah -buahan [1]" # Contoh array bersekutu mengisytiharkan -a warna warna ["merah "] ="#Ff0000 "warna [" hijau "] ="#00ff00 "warna [" biru "] ="#0000ff "echo" Warna untuk hijau adalah warna ['hijau'] "123456789101112 | #!/bin/bash # Contoh array yang diindeks ("epal" "oren" "oren" "anggur") echo "Buah kedua adalah $ buah -buahan [1]" # contoh array bersekutu -a colorscolors ["merah"] = "#Ff0000" warna ["hijau"] = "#00ff00" warna ["biru"] = "#0000ff" echo "Warna untuk hijau adalah warna ['hijau']" |
Dalam contoh ini, kami telah membuat array yang diindeks dan array bersekutu untuk menyimpan dan memanipulasi data dengan cekap. Kami telah menggunakan array yang diindeks untuk mengakses elemen dengan indeks, dan array bersekutu untuk mengakses elemen dengan kunci.
4. Bekerja dengan ungkapan biasa
Ekspresi biasa adalah alat yang kuat yang membolehkan anda mencari, mengganti, dan memanipulasi teks. Di Bash, anda boleh menggunakan ungkapan biasa dalam pelbagai cara, seperti pencocokan corak, manipulasi rentetan, dan pengesahan input. Ekspresi biasa Gunakan aksara khas untuk mewakili corak, yang boleh digunakan untuk memadankan atau menggantikan bahagian rentetan.
#!/bin/bash # perintah untuk mengekstrak domain dari alamat e -mel e -mel = "[email protected] "domain = $ (echo $ e -mel | grep -op '(?<=@)[^.]+.[^.]+') echo "The domain is $domain" # Command to replace all instances of "foo" with "bar" text="This is a foo bar sentence." new_text=$(echo $text | sed 's/foo/bar/g') echo "The new text is $new_text"1234567891011 | #!/bin/bash # perintah untuk mengekstrak domain dari alamat e -melMail = "[e -mel dilindungi]" domain = $ (echo $ e -mel | grep -op '(?<[email protected])[^.]+.[^.]+')echo "The domain is $domain" # Command to replace all instances of "foo" with "bar"text="This is a foo bar sentence."new_text=$(echo $text | sed 's/foo/bar/g')echo "The new text is $new_text" |
Dalam contoh ini, kami telah menggunakan ungkapan biasa untuk mengekstrak domain dari alamat e -mel dan menggantikan rentetan dalam ayat.
5. Skrip bash debugging
Debugging adalah bahagian penting dalam proses pembangunan. Bash menyediakan beberapa alat penyahpepijatan yang dapat membantu anda mengenal pasti dan memperbaiki kesilapan dalam skrip anda. Anda boleh menggunakan '-x' pilihan untuk membolehkan mod debugging, yang mencetak setiap arahan sebelum dilaksanakan. Anda juga boleh menggunakan 'set -u' Pilihan untuk mengesan pembolehubah yang tidak ditentukan.
#!/bin/bash set -x set -u # perintah untuk menggabungkan dua rentetan str1 = "hello" str2 = "dunia" hasil = $ str1 $ str2 echo $ result12345678910 | #!/bin/bash set -xset -u # command to concatenate two stringsstr1 = "hello" str2 = "world" result = $ str1 $ str2echo $ result |
Dalam contoh ini, kami telah menggunakan '-x' pilihan untuk membolehkan mod debugging, yang mencetak setiap arahan sebelum dilaksanakan. Kami juga telah menggunakan 'set -u' Pilihan untuk mengesan pembolehubah yang tidak ditentukan. Ini dapat membantu kita mengenal pasti dan memperbaiki kesilapan dalam skrip kami.
Kesimpulan
Skrip Bash adalah alat yang berkuasa untuk pentadbir sistem dan pemaju. Dengan menggunakan teknik dan amalan terbaik yang dibincangkan dalam artikel ini, anda boleh menulis skrip bash yang lebih cekap dan mantap yang dapat mengautomasikan pelbagai tugas. Dengan menguasai teknik skrip bash canggih, anda boleh menjadi pengaturcara yang lebih mahir dan mengambil kemahiran automasi dan sistem pentadbiran sistem anda ke peringkat seterusnya.