Guía defensiva
¿Cómo usar variables y comillas Bash para tratar texto como datos?
En Bash una variable guarda texto, pero el intérprete puede dividirlo o expandirlo según cómo se use. Citar valores es una forma de conservar el dato previsto.
Distingue valor y orden
Una variable puede contener una ruta, etiqueta o texto de un registro. El programa debe recibir ese valor como un solo argumento cuando así lo exige la tarea. Escribirlo sin comillas deja que el shell aplique separación y expansiones antes de llamar al programa.
El hábito defensivo es asignar nombres claros y citar la expansión cuando se trate de una ruta o texto externo. Esto no valida el contenido ni concede permisos: sólo evita que la forma del texto cambie la llamada accidentalmente.
Compara comillas simples y dobles
Las comillas simples preservan el texto casi literalmente; las dobles permiten expandir variables y ciertas secuencias sin separar palabras. La elección depende de si necesitas un valor calculado o texto fijo. No uses una u otra como amuleto: lee qué se expandirá.
Ejemplo: una ruta de práctica puede incluir espacios. Guardarla en una variable y pasarla entre comillas dobles mantiene la ruta como una unidad. Haz la comprobación sobre archivos de ejemplo; no pruebes transformaciones con entradas de sistemas ajenos.
Evita construir órdenes
Concatenar texto para crear una orden completa vuelve difícil distinguir programa, opción y dato. Prefiere pasar valores como argumentos delimitados y revisa la documentación de cada herramienta. Una variable que contiene una opción no debe convertirse en autoridad para ejecutar una acción nueva.
Si un valor llega de un log o formulario, trátalo como dato no confiable. Filtra o compara contra un vocabulario permitido cuando la tarea lo requiera. La cita reduce sorpresas de interpretación, pero no sustituye esa validación.
Verifica en un caso pequeño
Una práctica segura usa un directorio temporal y un nombre con espacios para observar el efecto de las comillas. Registra el resultado esperado antes de ejecutar. Si el comportamiento es distinto, detente y revisa la expansión mostrada por la documentación.
Una nota de revisión indica valor de ejemplo, programa llamado y resultado, sin publicar rutas privadas. El objetivo es aprender una propiedad del intérprete y conservar una ejecución reproducible dentro del laboratorio.