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: