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

Thoát Khỏi Script Bash Một Cách Nhẹ Nhàng Với Lệnh exit – Ví Dụ & Thực Hành Tốt Nhất

Các script Bash/Shell thường chạy tuần tự cho đến khi toàn bộ mã trong tệp đã được thực thi. Lệnh exit sẽ thoát khỏi script trước thời điểm đó dựa trên các điều kiện bạn chọn.

Cú Pháp Lệnh exit

Dưới đây là cú pháp cho lệnh exit, có thể sử dụng trong các script Bash/Shell:

exit STATUS

Lưu ý rằng:

  • STATUS là tham số tùy chọn dùng để thiết lập trạng thái thoát của script
    • Trạng thái thoát cho các chương trình khác biết script đã thực thi thành công hay không
    • Nó sẽ mặc định là 0 hoặc trạng thái thoát của lệnh cuối cùng được thực thi bởi script
    • Trạng thái thoát 0 biểu thị thành công. Bất kỳ giá trị nào lớn hơn 0 đều biểu thị thất bại

Ví Dụ Script Bash

Dưới đây là một script ví dụ sử dụng lệnh exit, kèm theo chú giải về cách hoạt động khi được sử dụng theo các cách khác nhau:

#!/bin/bash
# Biến kiểm tra có thể đặt thành TRUE nếu có lỗi
ERROR=false

# Dòng này luôn được in vì nó nằm trước mọi lệnh exit
echo "Hello LinuxScrew!"

# Nếu có lỗi...
if $ERROR ; then
    # Thông báo cho người dùng biết có lỗi
    echo "There was an error"
    # Thoát chương trình với trạng thái 1 (Chỉ ra script không thành công)
    exit 1
fi

# Thoát script với trạng thái 0 (Chỉ ra script thành công)
exit 0

# Dòng này không bao giờ được in vì nó nằm sau lệnh exit, nên không bao giờ chạy
echo "This is a pointless line"

Ký tự ‘#!’ trong script Shell Linux là gì?

Như đã thấy, exit là một lệnh đơn giản chỉ thoát khỏi script, với một trạng thái có thể kiểm tra sau này để xem script có thành công hay không.

Kiểm Tra Trạng Thái Thoát Của Chương Trình Hoặc Script

Trạng thái thoát của lệnh vừa chạy có thể truy cập từ shell bằng lệnh sau:

echo $?

Điều Gì Xảy Ra Với Đầu Ra Của Script?

Đầu ra của script tách biệt với trạng thái thoát. Đầu ra của chương trình và đầu ra từ các lệnh như echo đều đã được xuất bởi ứng dụng sử dụng STDOUT – sau đó có thể được chuyển hướng, xem và lưu.