Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Cách bật chế độ gỡ lỗi tập lệnh Shell trong Linux

Tập lệnh chỉ đơn giản là một danh sách các lệnh được lưu trữ trong một tệp. Thay vì chạy một chuỗi lệnh bằng cách gõ từng lệnh một trên thiết bị đầu cuối, người dùng hệ thống có thể lưu trữ tất cả chúng (lệnh) trong một tệp và liên tục gọi tệp để thực hiện lại các lệnh nhiều lần.

Trong khi học script hoặc trong giai đoạn đầu viết script, chúng ta thường bắt đầu bằng cách viết những đoạn script nhỏ hoặc ngắn với một vài dòng lệnh. Và chúng tôi thường gỡ lỗi các tập lệnh như vậy bằng cách không làm gì khác hơn là xem đầu ra của chúng và đảm bảo rằng chúng hoạt động như chúng tôi dự định.

Tuy nhiên, khi chúng ta bắt đầu viết các tập lệnh rất dài và nâng cao với hàng nghìn dòng lệnh, chẳng hạn như các tập lệnh sửa đổi cài đặt hệ thống, thực hiện sao lưu quan trọng qua mạng và nhiều hơn nữa, chúng ta sẽ nhận ra rằng chỉ nhìn vào đầu ra của một tập lệnh thì không. đủ để tìm lỗi trong một tập lệnh.

Do đó, trong loạt bài gỡ lỗi shell script trong Linux này, chúng ta sẽ hướng dẫn cách bật gỡ lỗi shell script, chuyển sang phần giải thích các chế độ gỡ lỗi shell script khác nhau và cách sử dụng chúng trong loạt bài tiếp theo.

Cách bắt đầu tập lệnh

Tập lệnh được phân biệt với các tệp khác bằng dòng đầu tiên, chứa #! ( She-bang - xác định loại tệp) và tên đường dẫn (đường dẫn đến trình thông dịch) thông báo cho hệ thống rằng tệp là tập hợp các lệnh sẽ được thông dịch bởi chương trình đã chỉ định (trình thông dịch).

Dưới đây là các ví dụ về “dòng đầu tiên” trong các loại tập lệnh khác nhau:

#!/bin/sh          [For sh scripting]
#!/bin/bash        [For bash scripting] 
#!/usr/bin/perl    [For perl programming]
#!/bin/awk -f      [For awk scripting]   

Lưu ý :Dòng đầu tiên hoặc #! có thể bị loại bỏ nếu một tập lệnh chỉ chứa một tập hợp các lệnh hệ thống tiêu chuẩn, mà không có bất kỳ chỉ thị shell bên trong nào.

Cách thực thi tập lệnh Shell trong Linux

Cú pháp thông thường để gọi một tập lệnh shell là:

$ script_name  argument1 ... argumentN

Một hình thức khả thi khác là chỉ định rõ ràng trình bao sẽ thực thi tập lệnh như dưới đây:

$ shell script_name argument1 ... argumentN  

Ví dụ:

$ /bin/bash script_name argument1 ... argumentN     [For bash scripting]
$ /bin/ksh script_name argument1 ... argumentN      [For ksh scripting]
$ /bin/sh script_name argument1 ... argumentN       [For sh scripting]

Đối với các tập lệnh không có #! là dòng đầu tiên và chỉ chứa các lệnh hệ thống cơ bản như lệnh bên dưới:

#script containing standard system commands
cd /home/$USER
mkdir tmp
echo "tmp directory created under /home/$USER"

Chỉ cần làm cho nó có thể thực thi và chạy nó như sau:

$ chmod +x  script_name
$ ./script_name 

Phương pháp kích hoạt chế độ gỡ lỗi tập lệnh Shell

Dưới đây là các tùy chọn gỡ lỗi tập lệnh shell chính:

  1. -v (viết tắt của verbose) - yêu cầu trình bao hiển thị tất cả các dòng trong tập lệnh khi chúng được đọc, nó kích hoạt chế độ tiết.
  2. -n (viết tắt của noexec hoặc no ecxecution) - hướng dẫn trình bao đọc tất cả các lệnh, tuy nhiên không thực thi chúng. Tùy chọn này kích hoạt chế độ kiểm tra cú pháp.
  3. -x (viết tắt của xtrace hoặc theo dõi thực thi) - yêu cầu trình bao hiển thị tất cả các lệnh và đối số của chúng trên thiết bị đầu cuối trong khi chúng được thực thi. Tùy chọn này cho phép chế độ truy tìm vỏ.

1. Sửa đổi dòng đầu tiên của tập lệnh Shell

Cơ chế đầu tiên là bằng cách thay đổi dòng đầu tiên của tập lệnh shell như bên dưới, điều này sẽ cho phép gỡ lỗi toàn bộ tập lệnh.

#!/bin/sh option(s)

Trong biểu mẫu trên, tùy chọn có thể là một hoặc kết hợp của các tùy chọn gỡ lỗi ở trên.

2. Gọi Shell với các tùy chọn gỡ lỗi

Cách thứ hai là gọi shell với các tùy chọn gỡ lỗi như sau, phương pháp này cũng sẽ bật gỡ lỗi của toàn bộ tập lệnh.

$ shell option(s) script_name argument1 ... argumentN

Ví dụ:

$ /bin/bash option(s) script_name argument1 ... argumentN   

3. Sử dụng bộ Lệnh tích hợp Shell

Phương pháp thứ ba là sử dụng lệnh cài đặt sẵn để gỡ lỗi một phần nhất định của tập lệnh shell chẳng hạn như một hàm. Cơ chế này rất quan trọng, vì nó cho phép chúng tôi kích hoạt gỡ lỗi ở bất kỳ phân đoạn nào của tập lệnh shell.

Chúng tôi có thể bật chế độ gỡ lỗi bằng cách sử dụng set lệnh trong biểu mẫu bên dưới, trong đó tùy chọn là bất kỳ tùy chọn gỡ lỗi nào.

$ set option 

Để bật chế độ gỡ lỗi, hãy sử dụng:

$ set -option

Để tắt chế độ gỡ lỗi, hãy sử dụng:

$ set +option

Ngoài ra, nếu chúng tôi đã bật một số chế độ gỡ lỗi trong các phân đoạn khác nhau của tập lệnh shell, chúng tôi có thể tắt tất cả chúng cùng một lúc như vậy:

$ set -

Đó là hiện tại với việc bật chế độ gỡ lỗi tập lệnh shell. Như chúng ta đã thấy, chúng ta có thể gỡ lỗi toàn bộ tập lệnh shell hoặc một phần cụ thể của tập lệnh.

Trong hai tập tiếp theo của loạt bài này, chúng tôi sẽ trình bày cách sử dụng các tùy chọn gỡ lỗi tập lệnh shell để giải thích chi tiết , kiểm tra cú pháp gỡ lỗi theo dõi trình bao chế độ với các ví dụ.

Quan trọng là, đừng quên đặt bất kỳ câu hỏi nào về hướng dẫn này hoặc có thể cung cấp phản hồi cho chúng tôi thông qua phần bình luận bên dưới. Cho đến lúc đó, hãy duy trì kết nối với Tecmint.