Cara Membolehkan Mod Debugging Skrip Shell Di Linux
- 788
- 210
- Dale Harris II
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:
-v
(pendek untuk verbose) - memberitahu shell untuk menunjukkan semua baris dalam skrip semasa mereka dibaca, ia mengaktifkan mod verbose.-n
(Pendek untuk NoExec atau Tiada Ecxecution) - Mengarahkan shell Baca semua arahan, namun tidak melaksanakannya. Pilihan ini mengaktifkan mod pemeriksaan sintaks.-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.
- « 5 cara untuk mengosongkan atau memadam kandungan fail besar di Linux
- Urus Samba4 Domain Controller DNS dan Dasar Kumpulan dari Windows - Bahagian 4 »