A veces uso, $PROJECT_HOME/*para eliminar todos los archivos del proyecto. Cuando PROJECT_HOMEno se establece la variable de entorno (porque lo hice suy el nuevo usuario no tiene esta variable de entorno establecida), comienza a eliminar todos los archivos de la carpeta raíz. Esto es apocalíptico.
¿Cómo puedo configurar el basherror de lanzamiento cuando uso una variable de entorno indefinida en el shell?
[ -z "$VAR" ]funciona con un no inicializado VARtambién. La inicialización fue solo para mostrar el comportamiento indeseable. Mi punto es que si alguna vez sus vars se inicializan en cadenas vacías, de cualquier manera, y usted corre rm -r "$PROJECT_HOME"/*confiando erróneamente set -u, obtendrá el comportamiento "apocalíptico". IHMO, es mejor prevenir que curar cuando se trata de proteger todo el contenido de su computadora. set -uno es seguro.
PROJECT_HOME=/etc? Simplemente verificar un valor vacío no es suficiente para prevenir el cataclismo. No debe usar variables de usuarios no confiables cuando se ejecuta como root.
set -uHará lo que quieras.