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

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

Re: [shell-script] Re: Erro usando o laço for


From: Paulo Bettega
Subject: Re: [shell-script] Re: Erro usando o laço for
Date: Tue, 28 Oct 2014 11:37:16 -0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

Olá Mestre Julio, a tua idéia de zerar a variável funcionou.

O teste se é arquivo também funciona, acho que nesse caso o loop
passa ao teste cada nome de arquivo encontrado, e o teste faz o teste
em um nome de cada vez. O loop inclusive passa o valor '*.ext' quando
não tem nenhum arquivo, daí que aparece a listagem com o asterisco.

Abraços Paulo Bettega


On 28-10-2014 10:57, 'Julio C. Neves' address@hidden [shell-script] wrote:
Fala Paulo,
acho que essa construção não deve funcionar pq o -f é um operador unário e se 
expandir para mais de
um arquivo, deve voltar um código de erro. Eu faria assim:

 > index.html
for x in $(echo *.{html,txt,pdf,doc,css} | sed -r 's/ 
\*\.(html|txt|pdf|doc|css)//g'); do
      echo "<a href=\"$x\"> $x </a> <br />" >> index.html
      echo "Arquivo $x listado."
done

PS: Não sei se essa é a melhor solução, pq não vi a solicitação de ajuda 
original.

Abcs,
Julio
*@juliobash*
*Próximos cursos de Shell*
*Cidade        LocalPeríodo*
*Rio de JaneiroEDX <http://edx.srv.br/>10 a 14/11*
*São Paulo 4Linux 
<http://www.4linux.com.br/cursos/programacao-em-shell-script>24 a 28/11*
Dou treinamento de /Shell/ em qualquer cidade.
Para mais detalhes, me mande um e-mail <mailto:address@hidden>.


Em 28 de outubro de 2014 10:11, Paulo Bettega address@hidden
<mailto:address@hidden> [shell-script] <address@hidden
<mailto:address@hidden>> escreveu:

    Uma solução pode ser testar se for arquivo.

    for x in *.{html,txt,pdf,doc,css}; do
          [ -f "$x" ] && {
          echo "<a href=\"$x\"> $x </a> <br />" >> index.html

          echo "Arquivo $x listado."
          }
    done

    Mas já que tem o processamento extra do teste, pode ser
    também a idéia do Mr.Bits "for x in $(ls *.{html,txt,pdf,doc,css})"

    Bash e ksh listam o valor de x como *.html, *.txt, etc.
    Parece que o fato dos arquivos não existirem não deixa a variável
    nula, então o echo imprime o valor.

    Abraços Paulo Bettega


    On 28-10-2014 09:21, address@hidden <mailto:address@hidden> [shell-script] 
wrote:
     > Ola, Itamar
     >
     >
     > Sua sugestão também nao funcionou, veja a saída do teste que fiz:
     > <a href="teste1.html"> teste1 </a> <br />
     > <a href="teste2.html"> teste2 </a> <br />
     > <a href="teste3.html"> teste3 </a> <br />
     > <a href="teste4.html"> teste4 </a> <br />
     > <a href="teste.html"> teste </a> <br />
     > <a href="*.txt"> *.txt </a> <br />
     > <a href="*.pdf"> *.pdf </a> <br />
     > <a href="*.doc"> *.doc </a> <br />
     > <a href="*.css"> *.css </a> <br />
     >
     > Como pode ver , as linhas onde aparece os asteriscos são arquivos que 
não existe na pasta, mesmo
     > assim o script pegou estas extensões do laço for e as listou.
     >
     >
     >
    
----------------------------------------------------------------------------------------------------
     > Enviado por: address@hidden <mailto:address@hidden>
     >
    
----------------------------------------------------------------------------------------------------


    ------------------------------------

    ------------------------------------

    ---------------------------------------------------------------------
    Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem
    insistir em não seguir esta regra será moderado sem prévio aviso.
    ---------------------------------------------------------------------
    Sair da lista: address@hidden
    <mailto:address@hidden>
    ---------------------------------------------------------------------
    Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
    ---------------------------------------------------------------------
    Servidor Newsgroup da lista: news.gmane.org <http://news.gmane.org>
    Grupo: gmane.org.user-groups.programming.shell.brazil


    ------------------------------------

    Links do Yahoo Grupos




----------------------------------------------------------------------------------------------------
Enviado por: "Julio C. Neves" <address@hidden>
----------------------------------------------------------------------------------------------------


reply via email to

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