Tôi đang tìm hiểu cách sử dụng hiệu quả các set
tùy chọn khác nhau trong tập lệnh của mình và tình cờ set -u
thấy nó hoàn hảo để thoát khỏi tập lệnh của tôi nếu một biến không được đặt đúng (ví dụ: xóa người dùng). Theo trang người đàn ông , set -u
và set -e
thực hiện như sau ...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
Tôi đã tạo một tập lệnh thử nghiệm để kiểm tra chức năng này, nhưng nó dường như không hoạt động như mong đợi. Có lẽ ai đó có thể giải thích tốt hơn vấn đề của tôi cho tôi và nơi tôi đang diễn giải sai? Kịch bản thử nghiệm là dưới đây. Cảm ơn bạn.
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
Tôi hy vọng tập lệnh hiển thị 0 và "Điều này hoạt động" , và sau đó thất bại vì ${testing2}
không được đặt.
Thay vào đó tôi được hiển thị 0 và "Điều này hoạt động" , theo sau 0 và sau đó 0 Điều này sẽ không xuất hiện
Bất cứ ai có thể cung cấp một số kiến thức? Cảm ơn bạn.