Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Thành thao Debug Shell Script trong Linux: Hướng dẫn từng bước

Script đơn giản là danh sách lệnh lưu trong file. Thay vì gõ lần lượt lệnh trên terminal, user có thể lưu tất cả vào file và gọi lại file để thực thi lệnh nhiều lần.

Khi học scripting hoặc giai đoạn đầu viết script, thường viết script ngắn vài dòng. Debug bằng cách nhìn đầu ra và đảm bảo hoạt động như ý định.

Tuy nhiên, khi viết script dài hàng nghìn dòng, ví dụ script sửa cài đặt hệ thống, backup quan trọng qua mạng..., chỉ nhìn đầu ra không đủ tìm bug trong script.

Do đó, trong series debug shell script Linux này, sẽ đi qua cách bật debug shell script, chuyển sang giải thích các chế độ debug shell script và cách dùng trong các phần tiếp theo.

Cách bắt đầu một Script

Script khác file khác bằng dòng đầu chứa #! (She-bang – định nghĩa loại file) và tên đường dẫn (đường dẫn đến interpreter) báo cho hệ thống file là tập lệnh được thông dịch bởi chương trình chỉ định (interpreter).

Ví dụ "dòng đầu" các loại script:

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

Lưu ý: Dòng đầu hoặc #! có thể bỏ nếu script chỉ chứa lệnh hệ thống tiêu chuẩn, không có chỉ thị shell nội bộ.

Cách thực thi Shell Script trên Linux

Cú pháp thông thường gọi shell script:

$ script_name argument1 ... argumentN

Dạng khác chỉ định rõ shell thực thi script:

$ shell script_name argument1 ... argumentN

Ví dụ:

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

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

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

Chỉ cần cấp quyền thực thi và chạy:

$ chmod +x script_name
$ ./script_name

Phương pháp bật Shell Script Debugging Mode

Các tùy chọn debug shell script chính:

  1. -v (verbose) – yêu cầu shell hiển thị tất cả dòng script khi đọc, bật verbose mode.
  2. -n (noexec/no execution) – chỉ thị shell đọc tất cả lệnh nhưng không thực thi. Bật syntax checking mode.
  3. -x (xtrace/execution trace) – yêu cầu shell hiển thị tất cả lệnh và tham số trên terminal khi thực thi. Bật shell tracing mode.

1. Sửa đổi dòng đầu Shell Script

Cơ chế đầu tiên: thay đổi dòng đầu script như dưới, bật debug cho toàn bộ script.

#!/bin/sh option(s)

Trong dạng trên, option là một hoặc kết hợp các tùy chọn debug trên.

2. Gọi Shell với tùy chọn Debugging

Cách thứ hai: gọi shell kèm tùy chọn debug, cũng bật debug toàn bộ script.

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

Ví dụ:

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

3. Dùng lệnh built-in set của Shell

Cách thứ ba: dùng lệnh built-in set debug đoạn cụ thể của shell script như hàm. Cơ chế này quan trọng, cho phép bật debug tại bất kỳ đoạn nào của script.

Bật debug mode dùng set dạng sau, option là bất kỳ tùy chọn debug nào.

$ set option

Để bật debug mode:

$ set -option

Để tắt debug mode:

$ set +option

Thêm, nếu bật nhiều chế độ debug ở các đoạn khác nhau, có thể tắt tất cả cùng lúc:

$ set -

Đó là tất cả về bật shell script debugging mode. Như đã thấy, có thể debug toàn bộ script hoặc đoạn cụ thể.

Hai phần tới series này sẽ bao quát cách dùng tùy chọn debug shell script cho verbose, syntax checking và shell tracing debugging modes với ví dụ.

Quan trọng: đừng quên hỏi câu hỏi hoặc góp ý qua phần bình luận. Cho đến lúc đó, hãy kết nối Tecmint.