Lección 01
Variables y archivos sin sorpresas
Protege espacios, nombres inesperados y destinos de salida.
Antes de practicar
01 // Trata cada expansión como un dato
En Bash, una variable puede contener espacios, caracteres especiales o un nombre que empieza con guion. Al expandir una ruta como argumento, las comillas dobles conservan el valor como una sola pieza y evitan divisiones o patrones de archivos inesperados.
Ejemplo: una ruta como /evidencia/caso simulado/reporte.txt debe llegar al programa como un argumento, no como tres palabras independientes.
02 // Distingue nombres de opciones
Muchas herramientas interpretan un nombre que comienza con - como una opción. El separador -- marca el final de las opciones cuando la herramienta admite esa convención; una ruta como ./-reporte.log también deja claro que se trata de un nombre.
Confirma primero la herramienta y la carpeta autorizada. Borrar el archivo o ampliar permisos no resuelve la ambigüedad y puede alterar evidencia.
03 // Crea temporales exclusivos
Un nombre predecible en un directorio compartido puede chocar con otra ejecución o con una entrada creada por otra cuenta. Pide al sistema un temporal exclusivo, con permisos restrictivos desde su creación, y programa su limpieza al terminar.
Ejemplo: dos procesos generan reportes al mismo tiempo en un directorio compartido. Si cada uno recibe un temporal exclusivo, una ejecución no abre ni reemplaza la ruta reservada por la otra.
04 // Separa entrada, trabajo y destino
No leas un archivo mientras rediriges con > al mismo nombre: la shell puede truncarlo antes de que el lector vea su contenido. Escribe en una ruta temporal, valida el resultado y reemplaza el destino en un paso consciente.
Antes de automatizar, deja explícitos la fuente, el destino permitido y las condiciones que detienen el script. Esa separación permite comparar antes y después y detectar una salida incompleta sin sacrificar el original.