¿Cómo puedo escribir líneas múltiples en un archivo llamado myconfig.confusando BASH?
#!/bin/bash
kernel="2.6.39";
distro="xyz";
echo <<< EOL
line 1, ${kernel}
line 2,
line 3, ${distro}
line 4
line ...
EOL >> /etc/myconfig.conf;
cat /etc/myconfig.conf;

EOF, de lo contrario no se reconocerá y se encontrará con un error inesperado al final del archivo .Esto hace lo que quieres.
fuente
Si no desea reemplazar las variables, debe rodear EOL con comillas simples.
Ejemplo anterior:
fuente
Las soluciones heredoc son sin duda la forma más común de hacer esto. Otras soluciones comunes son:
echo 'línea 1,' "$ {kernel}" ' línea 2, línea 3, '"$ {distro}"' línea 4 '> /etc/myconfig.confy
exec 3> & 1 # Guardar stdout actual exec> /etc/myconfig.conf echo línea 1, $ {kernel} eco línea 2, echo línea 3, $ {distro} ... exec 1> & 3 # Restaurar stdoutfuente
printfque introduce algunas variaciones más interesantes.El mecanismo a continuación ayuda a redirigir varias líneas al archivo. Mantener cadena completa bajo
"para que podamos redirigir los valores de la variable.Contenido de
a.txtisContenido de
b.txtisfuente