Skrip hanyalah daftar perintah yang disimpan dalam file. Alih-alih menjalankan urutan perintah dengan mengetiknya satu per satu sepanjang waktu di terminal, pengguna sistem dapat menyimpan semuanya (perintah) dalam file dan berulang kali memanggil file untuk menjalankan kembali beberapa perintah waktu.
Ketika belajar skrip atau selama tahap awal penulisan skrip, biasanya kita mulai dengan menulis skrip kecil atau pendek dengan beberapa baris perintah. Dan kami biasanya men-debug skrip tersebut dengan tidak melakukan apa pun selain melihat outputnya dan memastikan bahwa skrip tersebut berfungsi seperti yang kami inginkan.
Namun, saat kita mulai menulis skrip yang sangat panjang dan canggih dengan ribuan baris perintah, misalnya skrip yang mengubah pengaturan sistem, melakukan pencadangan kritis melalui jaringan dan masih banyak lagi, kita akan menyadari bahwa hanya melihat output dari sebuah skrip tidak cukup untuk menemukan bug di dalam sebuah skrip.
Oleh karena itu, dalam debugging skrip shell di seri Linux ini, kita akan membahas cara mengaktifkan skrip shell debugging, pindah untuk menjelaskan mode debugging skrip shell yang berbeda dan bagaimana menggunakannya di selanjutnya seri.
Sebuah skrip dibedakan dari file lain dengan baris pertamanya, yang berisi a #!
(Peristiwa – mendefinisikan tipe file) dan nama path (path to interpreter) yang menginformasikan sistem bahwa file adalah kumpulan perintah yang akan diinterpretasikan oleh program tertentu (interpreter).
Di bawah ini adalah contoh "baris pertama" dalam berbagai jenis skrip:
#!/bin/sh [Untuk NSnaskah] #!/bin/bash [Untukpesta scripting] #!/usr/bin/perl [Untuk perlpemrograman] #!/bin/awk -f [Untukawk naskah]
Catatan: Baris pertama atau #!
dapat ditinggalkan jika skrip hanya berisi satu set perintah sistem standar, tanpa arahan shell internal.
Sintaks konvensional untuk menjalankan skrip shell adalah:
$ script_name argumen1... argumenN.
Bentuk lain yang mungkin adalah dengan secara jelas menentukan shell yang akan mengeksekusi skrip seperti di bawah ini:
$ shell script_name argumen1... argumenN
Sebagai contoh:
$ /bin/bash script_name argumen1... argumenN [Untuk pestanaskah] $ /bin/ksh script_name argumen1... argumenN [Untukkshnaskah] $ /bin/sh script_name argumen1... argumenN [UntukNS naskah]
Untuk skrip yang tidak memiliki #!
sebagai baris pertama dan hanya berisi perintah sistem dasar seperti di bawah ini:
#script berisi perintah sistem standar. cd /home/$USER. mkdir tmp. echo "direktori tmp dibuat di bawah /home/$USER"
Cukup buat itu dapat dieksekusi dan jalankan sebagai berikut:
$ chmod +x nama_skrip. $ ./script_name
Di bawah ini adalah opsi debugging skrip shell utama:
-v
(kependekan dari verbose) – memberi tahu shell untuk menampilkan semua baris dalam skrip saat sedang dibaca, ini mengaktifkan mode verbose. -n
(kependekan dari noexec atau no ecxecution) – menginstruksikan shell membaca semua perintah, namun tidak menjalankannya. Opsi ini mengaktifkan mode pemeriksaan sintaks.-x
(kependekan dari xtrace atau execution trace) – memberi tahu shell untuk menampilkan semua perintah dan argumennya di terminal saat dijalankan. Opsi ini mengaktifkan mode penelusuran shell.Mekanisme pertama adalah dengan mengubah baris pertama skrip shell seperti di bawah ini, ini akan memungkinkan debugging seluruh skrip.
#!/bin/sh opsi (s)
Pada form di atas, opsi dapat berupa salah satu atau kombinasi dari opsi debugging di atas.
Yang kedua adalah dengan memanggil shell dengan opsi debugging sebagai berikut, metode ini juga akan mengaktifkan debugging seluruh skrip.
$ opsi shell (s) script_name argument1... argumenN.
Sebagai contoh:
$ /bin/bash opsi (s) script_name argumen1... argumenN
Metode ketiga adalah dengan menggunakan perintah set built-in untuk men-debug bagian tertentu dari skrip shell seperti fungsi. Mekanisme ini penting, karena memungkinkan kita untuk mengaktifkan debugging di setiap segmen skrip shell.
Kita dapat mengaktifkan mode debugging menggunakan mengatur perintah dalam formulir di bawah ini, di mana opsi adalah salah satu opsi debugging.
$ tetapkan opsi
Untuk mengaktifkan mode debugging, gunakan:
$ set -opsi.
Untuk menonaktifkan mode debugging, gunakan:
$ atur +opsi.
Selain itu, jika kami telah mengaktifkan beberapa mode debugging di segmen yang berbeda dari skrip shell, kami dapat menonaktifkan semuanya sekaligus seperti:
$ tetapkan -
Itu saja untuk saat ini dengan mengaktifkan mode debugging skrip shell. Seperti yang telah kita lihat, kita dapat men-debug seluruh skrip shell atau bagian tertentu dari skrip.
Dalam dua episode berikutnya dari seri ini, kita akan membahas cara menggunakan opsi debugging skrip shell untuk jelaskan bertele-tele, pemeriksaan sintaks dan debugging pelacakan shell mode dengan contoh.
Yang penting, jangan lupa untuk mengajukan pertanyaan tentang panduan ini atau mungkin memberikan umpan balik kepada kami melalui bagian komentar di bawah. Sampai saat itu, tetap terhubung ke Tecmint.