Bazen $PROJECT_HOME/*projedeki tüm dosyaları silmek için kullanırım . Ortam değişkeni PROJECT_HOMEayarlanmadığında (yaptığım suve yeni kullanıcının bu ortam değişkeni ayarlanmadığı için), tüm dosyaları kök klasörden silmeye başlar. Bu kıyamettir.
bashKabukta tanımsız bir ortam değişkeni kullandığımda hata atmaya nasıl yapılandırabilirim ?
[ -z "$VAR" ]başlatılmamış VARda çalışır . Başlatma, sadece istenmeyen davranışları göstermek içindi - Amacım, varslarınız boş dizgilere ne şekilde olursa olsun başlatılırlarsa ve rm -r "$PROJECT_HOME"/*yanlışlıkla güvenerek set -uçalışırsanız, "kıyamet" davranışını elde edersiniz. IHMO, bilgisayarınızın tüm içeriğini korumak söz konusu olduğunda, üzgün olmaktan daha güvenli olmak daha iyidir. set -ugüvenli değil.
PROJECT_HOME=/etc? Felaketi önlemek için sadece boş bir değerin kontrol edilmesi yeterli değildir. Kök olarak çalışırken güvenilmeyen kullanıcıların değişkenlerini kullanmamalısınız.
set -une istersen onu yapacağım.