Đôi khi tôi sử dụng, $PROJECT_HOME/*để xóa tất cả các tập tin trong dự án. Khi biến môi trường, PROJECT_HOMEkhông được đặt (vì tôi đã làm suvà người dùng mới không đặt biến môi trường này), nó bắt đầu xóa tất cả các tệp khỏi thư mục gốc. Đây là ngày tận thế.
Làm cách nào bashđể định cấu hình để ném lỗi, khi tôi sử dụng biến môi trường không xác định trong trình bao?
[ -z "$VAR" ]làm việc với một uninitialized VARquá. Việc khởi tạo chỉ là để thể hiện hành vi không mong muốn. Quan điểm của tôi là, nếu các vars của bạn đã được khởi tạo thành các chuỗi rỗng, bằng mọi cách, và bạn chạy rm -r "$PROJECT_HOME"/*sai dựa vào set -u, bạn sẽ có hành vi "tận thế". IHMO, tốt hơn hết là bạn nên an toàn hơn là xin lỗi khi bảo vệ toàn bộ nội dung trên máy tính của bạn. set -ukhông an toàn
PROJECT_HOME=/etcthì sao? Chỉ kiểm tra một giá trị trống là không đủ để ngăn chặn thảm họa. Bạn không nên sử dụng các biến từ người dùng không tin cậy khi chạy bằng root.
set -usẽ làm những gì bạn muốn.