KIỂM TRA EXIT CODE TRONG BASH -

KIỂM TRA EXIT CODE TRONG BASH -

KIỂM TRA EXIT CODE TRONG BASH -

KIỂM TRA EXIT CODE TRONG BASH -

KIỂM TRA EXIT CODE TRONG BASH -
KIỂM TRA EXIT CODE TRONG BASH -
(028) 35124257 - 0933 427 079

KIỂM TRA EXIT CODE TRONG BASH

KIỂM TRA EXIT CODE TRONG BASH

Có khá nhiều exit code được sử dụng trên các hệ thống Linux, mặc dù không có danh sách nào có thể hiển thị khi bạn cảm thấy tò mò. Trên thực tế, bạn sẽ không nhìn thấy exit code trừ khi bạn yêu cầu cụ thể.

Thay vào đó, bạn sẽ thấy mô tả bằng văn bản về sự cố bạn gặp phải – chẳng hạn như “Không có tệp hoặc thư mục nào như vậy” - trong ngữ cảnh như sau:

                                                 $ bin / runme

                                                 bash: bin / runme: No such file or directory

Nếu bạn muốn xem exit code dạng số, bạn có thể sử dụng lệnh echo $? . Thông báo lỗi sẽ cho bạn biết rằng không có tập lệnh “runme” nào trong thư mục bin của bạn. Lệnh echo $? sẽ phản hồi chỉ với một số.

                                                 $ echo $?

                                                 127
Đối với hầu hết các lệnh bạn chạy trên dòng lệnh Linux, exit code sẽ là 0. Điều này có nghĩa là không có lỗi hoặc sự cố nào gặp phải

$ pwd

/home /justme

$ echo $?

0

$echo Xin chào, Thế giới

Xin chào, Thế giới

$ echo$?

0

Khi bạn cố gắng kiểm tra một tệp không tồn tại hoặc viết sai tên lệnh, bạn sẽ nhận được phản hồi số lớn hơn.

$ cat nosuchfile

Cat: nosuchfile: No such file or directory

% echo $?

1

$ daet

Bash: daet:command not found…

Similar command is: ‘date’

$ echo $?

127

Đôi khi, kết quả đầu ra của bạn có thể cho thấy bạn không gặp phải bất kỳ sự cố nào, nhưng mã lỗi vẫn có thể lớn hơn 1, cho thấy rằng một số lỗi đã xảy ra. Bạn có thể phải quét qua đầu ra để phát hiện một hoặc hai thông báo “quyền bị từ chối” lẻ loi. Mặc dù tôi đã để lại cho mình toàn bộ màn hình đầu ra mà lệnh đầu tiên bên dưới sẽ tạo ra, tôi vẫn có thể thấy rằng nó đã gặp phải một số loại vấn đề vì nó để lại cho tôi exit code là 1:

$ Is –IR /usr > /dev/null 2>&1

$echo $?

1

Bạn cũng có thể sử dụng lệnh bash exit để thoát khỏi shell bằng một mã thoát cụ thể. Trong các lệnh bên dưới, tôi bắt đầu trình báo thứ hai, thoát khỏi nó và sau đó hiển thị exit code mà tôi đã yêu cầu sử dụng.

$ bash              <== start new shell

$exit 111

Exit

$ echo$?

111

Bạn có thể sử dụng bất kỳ giá trị nào bạn muốn với lệnh exit, nhưng nếu bạn sử dụng giá trị lớn hơn 256, exit code sẽ là số bạn đã nhập trừ đi 256 như hình dưới đây. Rõ ràng, ít hơn 256 exit code đã được xác định.

$ bash

$exit257

Exit

$ echo$?

1

Bạn cũng có thể lấy một tập lệnh để thoát bằng một mã cụ thể bằng cách bao gồm một lệnh thoát. Nếu bạn không cung cấp giá trị số (tức là nếu bạn sử dụng lệnh thoát không có đối số), nó sẽ trả về giá trị 0.

$ cat runme

#!/bin/bash

Echo Hello, Wỏd

Exit 12

$ runme

Hello, Word

$ echo$?

12

Nếu bạn chạy một tập lệnh mà không sử dụng lệnh thoát, nó sẽ trả về exit code từ lệnh cuối cùng được chạy trong tập lệnh.

$ somescript

Hello

Cat: nosuchfile: No such file or directory

% echo$?

1

Hãy nhớ rằng bất kỳ lệnh nào bạn chạy trên dòng lệnh sẽ trả về exit code cho dù bạn có yêu cầu xem hay không. Nếu bạn ping một hệ thống không tồn tại trên mạng của bạn hoặc không phản hồi vì lý do nào đó, bạn sẽ thấy một cái gì đó như sau:

$ ping 192.168.0.111

PING 192.168.0.111 (192.168.0.111) 56(84) bytes of data.

From 192.168.0.7 icmp_seq=1 Destination Host Unreachable

From 192.168.0.7 icmp_seq=2 Destination Host Unreachable

From 192.168.0.7 icmp_seq=3 Destination Host Unreachable

From 192.168.0.7 icmp_seq=4 Destination Host Unreachable

----192.168.0.111 ping satistics ----

4 packets transmitted, 0 received, +4 errors, 100% packetloss, time 3061ms

Pipe 3

$echo $?

1

Kết thúc

Bất kỳ lệnh nào bạn chạy trên dòng lệnh Linux, từ đơn giản nhất đến phức tạp nhất, sẽ trả về exit code. Nếu bạn từng tò mò, lệnh echo $? sẽ thông báo cho bạn về thành công của bạn (0) hoặc cho bạn biết rằng bạn đã gặp phải một số loại vấn đề (bất kỳ số nào lớn hơn 0). Điều này đặc biệt hữu ích khi lệnh của bạn tạo ra quá nhiều đầu ra mà bạn có thể thậm chí không nhận thấy bất kỳ lỗi nào.

Lưu Trọng Phúc - Phòng Kỹ Thuật VnPro

 

 

 

 

 


FORM ĐĂNG KÝ MUA HÀNG
Đặt hàng
icon-cart
0