shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Paginar resultados em html


From: Alexandre Gorges
Subject: Paginar resultados em html
Date: Fri, 16 Jan 2009 23:45:28 -0200
User-agent: Microsoft-Entourage/12.15.0.081119

Boa noite pessoal, programo com shell a bastante tempo e de uns tempos pra
cá tenho me aprofundado ainda mais.
Possuo um sistema de gestão de servidores va web, interagindo com o servidor
via shell.
Até hoje tenho feito praticamente tudo com o shell. Uso bem pouco do PHP,
apenas para chamar o script shell.

Acontece que estou com um problema que é fazer uma listagem ser dividida em
páginas. Como se fosse um resultado de busca
do google. Meu desejo é dividir em páginas com 20 resultados.
O meu script hoje consulta no mysql e monta o html. Funciona perfeitamente,
mas existe alguns servidores que possuem muitos emails, e o html
fica gigante. Visualizando o meu script abaixo, é possível via shell criar
essas páginas?

        Email_listatodos)
                # converte data de aaaa-mm-dd para dia/mes/ano
                data_mysql-to-brasil(){
                        echo "$*" | sed
's,\([0-9]\{4\}\)-\([0-9][0-9]\)-\([0-9][0-9]\),\3/\2/\1,'
                }

                # verifica se o email esta ativo
                esta_ativo(){
                        if [ "$*" = "1" ]; then
                                echo "Sim"
                        else
                                echo "Não"
                        fi
                }

                #divide a quota por 1024
                divide_quota(){
                        echo $(( $* / 1024 ))
                }

                # Executa a pesquisa no banco do postfix
                S=$(mysql -u server  -e "SELECT * FROM mailbox order by
username" postfix)

                # a procura retornou algum registro ?!
                [ "$S" ] || { echo "Sem registro";exit; }
                
                # colocar um TAB como IFS
                IFS="$(echo -e '\t')"
                # Apaga a primeira linha, ela contem o nome dos campos
                S=$(echo "$S" | sed '1d')
                
                echo "<p>&nbsp;</p>"
                echo "<table width=\"335\" height=\"49\" border=\"0\"
align=\"center\" cellpadding=\"0\" cellspacing=\"0\">"
                echo "  <tr>"
                echo "    <th height=\"15\" colspan=\"2\"
bordercolor=\"#000000\" bgcolor=\"#BABABA\" class=\"f01\"
scope=\"col\">Usu&aacute;rios do
Email</th>"        
                echo "  </tr>"

                # coloca um espaco em branco entre TABs repetidos (\t\t)
                echo "$S" | sed ":a;s/\(`echo -e '\t'`\)\(\1\)/\1 \2/;ta" |
\
                while read username password name maildir quota domain
created modified active relay; do

                echo "  <tr>"
                echo "    <th width=\"97\" height=\"68\" valign=\"top\"
class=\"f02\" scope=\"col\"><div align=\"left\">"
                echo "    Nome:<br />"
                echo "    Email:<br />"
                echo "    Quota:<br />"
                echo "    Criado em:<br />"
                echo "    Ativo:<br />"
                echo "    </div><div align=\"left\"></div></th>"
                echo "    <th width=\"285\" valign=\"top\" class=\"f02\"
scope=\"col\">"
                echo "    <div align=\"right\">"
                echo "    $name<br />"
                echo "    $username<br />"
                echo "    $(divide_quota $quota) MB<br />"
                echo "    $(data_mysql-to-brasil $created)<br />"
                echo "    $(esta_ativo $active)<br />"
                echo "    </div></th>"
                done

                echo "</tr></table>"

        ;;

Qualquer ajuda ficarei muito grato.


[]'s
Alexandre Gorges
http://algorges.blogspot.com
MSN/Gtalk/iCHAT/Skype/Jabber: address@hidden





[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]