Si usas Fish como tu shell, cosa que recomiendo, tal vez te hayas topado con el problema de que no puedes hacer una cosa tan sencilla en Bash como:
una_variable="$(cat un_archivo_con_varias_lineas.txt)"
echo "$una_variable"
El comportamiento de nuestras shells a la hora de leer y escribir espacios en blanco podría sorprendernos, es por eso que he decidido grabar este ejemplo para que veas cómo lo hace Bash en este caso:
En fish, estos comandos no servirían exactamente, ya que la sintaxis $()
no está
soportada en Fish, y esto es así por diseño. En su lugar se usan paréntesis sin el dólar
()
, pero tiene la dificultad de que no puede ir directamente dentro de una cadena de
texto "entre comillas dobles"
, ya que se interpreta como un paréntesis normal y
corriente, sin significado especial.
Pues bien, la solución es bien sencilla:
cat un_archivo_con_varias_lineas.txt | read -z una_variable
echo "$una_variable"
Puedes verlo en directo diferido: