Cara Membolehkan Mod Debugging Skrip Shell Di Linux

Cara Membolehkan Mod Debugging Skrip Shell Di Linux

Skrip hanyalah senarai arahan yang disimpan dalam fail. Daripada menjalankan urutan arahan dengan menaipnya satu demi satu sepanjang masa di terminal, pengguna sistem boleh menyimpan semuanya (perintah) dalam fail dan berulang kali menyerahkan fail untuk melaksanakan semula arahan beberapa kali.

Semasa belajar skrip atau semasa peringkat awal skrip menulis, kita biasanya bermula dengan menulis skrip kecil atau pendek dengan beberapa baris arahan. Dan kita biasanya menyahpepijat skrip tersebut dengan tidak melakukan apa -apa selain melihat output mereka dan memastikan bahawa mereka bekerja seperti yang kita maksudkan.

Walau bagaimanapun, ketika kita mula menulis skrip yang sangat panjang dan maju dengan beribu -ribu baris arahan, misalnya skrip yang mengubah suai tetapan sistem, melakukan sandaran kritikal ke atas rangkaian dan banyak lagi, kita akan menyedari bahawa hanya melihat output skrip tidak Cukup untuk mencari pepijat dalam skrip.

Oleh itu, dalam skrip shell ini debugging dalam siri Linux, kami akan berjalan melalui cara untuk membolehkan shell skrip debugging, bergerak ke atas untuk menerangkan mod debug shell yang berbeza dan cara menggunakannya dalam siri berikutnya.

Cara Memulakan Skrip

Skrip dibezakan dari fail lain dengan baris pertama, yang mengandungi a #! (Dia-bang - mentakrifkan jenis fail) dan nama laluan (jalan ke jurubahasa) yang memberitahu sistem bahawa fail itu adalah koleksi arahan yang akan ditafsirkan oleh program yang ditentukan (penterjemah).

Berikut adalah contoh "baris pertama" dalam pelbagai jenis skrip:

#!/bin/sh [untuk sh skrip] #!/bin/bash [untuk bash skrip] #!/usr/bin/perl [untuk Perl pengaturcaraan] #!/bin/awk -f [untuk awk skrip] 

Catatan: Baris pertama atau #! boleh ditinggalkan jika skrip hanya mengandungi satu set arahan sistem standard, tanpa sebarang arahan shell dalaman.

Cara Melaksanakan Skrip Shell di Linux

Sintaks konvensional untuk menggunakan skrip shell adalah:

$ script_name argument1 ... argumentn 

Satu lagi bentuk yang mungkin adalah dengan jelas menyatakan shell yang akan melaksanakan skrip seperti di bawah:

$ shell script_name argument1 ... argumentn 

Sebagai contoh:

$ /bin /bash argumen script_name1 ... argumentn [untuk bash skrip] $ /bin /ksh script_name argument1 ... argumentn [untuk ksh skrip] $ /bin /sh script_name argument1 ... argumentn [untuk sh skrip] 

Untuk skrip yang tidak ada #! Sebagai baris pertama dan hanya mengandungi arahan sistem asas seperti yang di bawah:

#Script Mengandungi Perintah Sistem Standard CD /Home /$ User Mkdir TMP Echo "Direktori TMP Dibuat di bawah /Laman Usa /$" 

Cukup buat ia boleh dilaksanakan dan jalankan seperti berikut:

$ chmod +x script_name $ ./script_name 

Kaedah Membolehkan Mod Debug Skrip Shell

Berikut adalah pilihan penyahpepijatan skrip shell utama:

  1. -v (pendek untuk verbose) - memberitahu shell untuk menunjukkan semua baris dalam skrip semasa mereka dibaca, ia mengaktifkan mod verbose.
  2. -n (Pendek untuk NoExec atau Tiada Ecxecution) - Mengarahkan shell Baca semua arahan, namun tidak melaksanakannya. Pilihan ini mengaktifkan mod pemeriksaan sintaks.
  3. -x (pendek untuk xtrace atau jejak pelaksanaan) - memberitahu shell untuk memaparkan semua arahan dan hujah mereka di terminal semasa mereka dilaksanakan. Pilihan ini membolehkan mod pengesanan shell.

1. Mengubah suai baris pertama skrip shell

Mekanisme pertama adalah dengan mengubah baris pertama skrip shell seperti di bawah, ini akan membolehkan debugging keseluruhan skrip.

#!/pilihan bin/sh 

Dalam borang di atas, pilihan boleh menjadi satu atau gabungan pilihan debug di atas.

2. Memohon shell dengan pilihan debugging

Yang kedua adalah dengan menggunakan shell dengan pilihan debug seperti berikut, kaedah ini juga akan menghidupkan debugging keseluruhan skrip.

$ shell pilihan script_name argument1 ... argumentn 

Sebagai contoh:

$ /bin /bash pilihan argumen script_name1 ... argumentn 

3. Menggunakan perintah terbina dalam set shell

Kaedah ketiga adalah dengan menggunakan perintah terbina dalam set untuk debug seksyen tertentu skrip shell seperti fungsi. Mekanisme ini penting, kerana ia membolehkan kita mengaktifkan debugging di mana -mana segmen skrip shell.

Kita boleh menghidupkan mod debugging menggunakan Tetapkan Perintah dalam bentuk di bawah, di mana pilihan adalah mana -mana pilihan debugging.

pilihan set $ 

Untuk membolehkan mod debugging, gunakan:

$ set -option 

Untuk melumpuhkan mod debugging, gunakan:

pilihan $ set + 

Di samping itu, jika kami telah membolehkan beberapa mod debugging dalam segmen skrip shell yang berlainan, kami boleh melumpuhkan semuanya sekaligus seperti:

set $ - 

Itu sekarang dengan membolehkan mod debug shell shell. Seperti yang telah kita lihat, kita boleh debug keseluruhan skrip shell atau bahagian tertentu skrip.

Dalam dua episod seterusnya siri ini, kami akan meliputi cara menggunakan pilihan debug shell untuk terangkan verbose, Pemeriksaan sintaks dan Shell mengesan debugging mod dengan contoh.

Yang penting, jangan lupa untuk bertanya apa -apa soalan mengenai panduan ini atau mungkin memberi maklum balas kepada kami melalui bahagian komen di bawah. Sehingga itu, terus berhubung dengan Tecmint.