quarta-feira, 4 de dezembro de 2013

LINUX - ESCREVER ARQUIVO HTML COM UM SCRIPT

Here Scripts LINUX 


Here Script (here-document, heredoc, Heres, Here-string ou Here-script) é um arquivo literal ou entrada de fluxo literal: é uma seção de um arquivo de código fonte que é tratado como se fosse um arquivo separado. O termo também é usado para uma forma de strings literais de várias linhas que usam sintaxe semelhante, preservando as quebras de linha e outros espaços em branco (incluindo o recuo) no texto.
Documentos here originam no shell do Unix, e são encontrados em sh, csh , ksh , bash e zsh , entre outros. Strings here literais de estilo documento são encontrados em várias linguagens de alto nível.

Para documentos here, seja tratada como arquivos ou strings, algumas linguagens os trata como um formato string, permitindo a substituição de variáveis ​​e substituição de comandos dentro do literal.

A sintaxe mais comum para documentos here, originários de Unix shells, é << seguido por um identificador de delimitação, seguida, a partir da próxima linha, pelo texto a ser citado, e depois fechada pelo mesmo identificador em sua própria linha .

 Esta sintaxe é porque os documentos here são formalmente um fluxo de literais e o conteúdo do documento é redirecionado para stdin ( entrada padrão) do comando anterior;

 a sintaxe de documentos here é por analogia à sintaxe do redirecionamento de entrada, que é:  < "tomar a entrada a partir da saída da seguinte comando".

Outras linguagens costumam usar sintaxe substancialmente similar, mas os detalhes de sintaxe e funcionalidade real pode variar significativamente. 
Quando usado simplesmente para strings literais, o << não indica indireto, mas é simplesmente uma convenção delimitador inicial. 
Em algumas linguagens, como o Ruby, << também é usado para redirecionamento de entrada, resultando ser usado << duas vezes se se deseja redirecionar a partir de um documento here string literal.

Construindo uma aplicação útil, escrevendo um arquivo HTML com um script.

Esta aplicação produzi um documento HTML que contém informações sobre o sistema. 
Um arquivo HTML formatado corretamente contém o seguinte conteúdo:
<HTML>
<HEAD>
    <TITLE>
    O título da página.
    </TITLE>
</HEAD>

<BODY>
    O conteúdo da página.
</BODY>
</HTML>
Podemos escrever um script para produzir o conteúdo abaixo:
#!/bin/bash

# make_page - A script para produzir um arquivo HTML

echo "<HTML>"
echo "<HEAD>"
echo "  <TITLE>"
echo "  O título da página"
echo "  </TITLE>"
echo "</HEAD>"
echo ""
echo "<BODY>"
echo "  O conteúdo da página."
echo "</BODY>"
echo "</HTML>"
       
Este script pode ser executado assim:

[alex@linux]$ make_page > page.html

Fazendo códigos que salvam seus trabalhos por si mesmos.

O primeiro aprimoramento será trocar o uso repetido do comando echo por um script, assim: 
#!/bin/bash

# make_page - Um script para produzir um arquivo HTML

cat << _EOF_
<HTML>
<HEAD>
    <TITLE>
    O título da página
    </TITLE>
</HEAD>

<BODY>
    O conteúdo da página.
</BODY>
</HTML>
_EOF_
       

Um script here(algumas vezes chamada de here document) é uma forma adicional de redirecionamento I/O . Este permite uma maneira de incluir conteúdo que será fornecido a um comando de entrada de dados padrão. No caso do script acima, o comando cat forneceu um fluxo de dados de entrada a partir do script para a entrada de dados padrão.

Um here script é construído assim:
command << token
content to be used as command's standard input
token
       
token can be any string of characters. I use "_EOF_" (EOF is short for "End Of File") because it is traditional, but you can use anything, as long as it does not conflict with a bash reserved word. The token that ends the here script must exactly match the one that starts it, or else the remainder of your script will be interpreted as more standard input to the command.
There is one additional trick that can be used with a here script. Often you will want to indent the content portion of the here script to improve the readability of your script. You can do this if you change the script as follows:
#!/bin/bash

# make_page - A script to produce an HTML file

cat <<- _EOF_
    <HTML>
    <HEAD>
        <TITLE>
        The title of your page
        </TITLE>
    </HEAD>

    <BODY>
        Your page content goes here.
    </BODY>
    </HTML>
_EOF_
       
Changing the the "<<" to "<<-" causes bash to ignore the leading tabs (but not spaces) in the here script. The output from the cat command will not contain any of the leading tab characters.
O.k., let's make our page. We will edit our page to get it to say something:
#!/bin/bash

# make_page - A script to produce an HTML file

cat <<- _EOF_
    <HTML>
    <HEAD>
        <TITLE>
        My System Information
        </TITLE>
    </HEAD>

    <BODY>
    <H1>My System Information</H1>
    </BODY>
    </HTML>
_EOF_
       
In our next lesson, we will make our script produce real information about the system.

Nenhum comentário:

Postar um comentário