En ocasiones pasa desapercibida ya que no se suele mencionar demasiado en las guías de scripting o se hace una pasada muy superficial sobre las posibilidades que ofrece. Especialmente en los casos en los que hay que “volcar” código adicional desde scripts en bash hacia otros scripts o ficheros. Afortunadamente, gracias a las redirecciones Here Document/Here-script esta tarea se hace bastante más llevadera. Muy útil en la generación de SCRIPTS y presentar los resultados via WEB.
Vamos a ver un ejemplo muy sencillo de script en bash en el que generamos un HTML a base de “echo” y haciendo redirecciones al fichero html_example.html
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/bin/sh fecha=`date +%F` parrafo1="Este es el primer parrafo" parrafo2="Este es el segundo parrafo" parrafo3="Este es el tercer parrafo" cat << EOF > /home/julio/html_example.html <html> <head><title>HTML ejemplo</title></head> <body> <h1>Este es el header principal</h1> <h2>Aqui incluimos una variable, su contenido es $fecha</h2> <p>$parrafo1</p> <p>$parrafo2</p> <p>$parrafo3</p> <p>Ejemplo de tabla<p> <table style="width:100%"> <tr> <td align="center">Primera columna</td> <td align="center">Segunda Columna</td> <td align="center">Tercera columna</td> </tr> <tr> <td align="center">50</td> <td align="center">60</td> <td align="center">70</td> </tr> </table> </body> </html> EOF |
Al ejecutar el script obtendríamos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<html> <head><title>HTML ejemplo</title></head> <body> <h1>Este es el header principal</h1> <h2>Aqui incluimos una variable, su contenido es 2016-01-10</h2> <p>Este es el primer parrafo</p> <p>Este es el segundo parrafo</p> <p>Este es el tercer parrafo</p> <p>Ejemplo de tabla<p> <table style="width:100%"> <tr> <td align="center">Primera columna</td> <td align="center">Segunda Columna</td> <td align="center">Tercera columna</td> </tr> <tr> <td align="center">50</td> <td align="center">60</td> <td align="center">70</td> </tr> </table> </body> </html> |