Bazen $PROJECT_HOME/*
projedeki tüm dosyaları silmek için kullanırım . Ortam değişkeni PROJECT_HOME
ayarlanmadığında (yaptığım su
ve 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.
bash
Kabukta tanımsız bir ortam değişkeni kullandığımda hata atmaya nasıl yapılandırabilirim ?
[ -z "$VAR" ]
başlatılmamış VAR
da ç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 -u
gü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 -u
ne istersen onu yapacağım.