1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em Shell Script

Discussão em 'Programação' iniciada por noitib, 17 de Novembro de 2008. (Respostas: 4; Visualizações: 642)

  1. noitib

    noitib Power Member

    Tenho de fazer um script que recebe como parâmetro o nome de vários ficheiros e pretende apagar esses ficheiros e contar o número de ficheiros apagados.

    Código:
    #!/bin/bash
    apagados=0
    if $#=0 then
       echo "não foram passados parâmetros"
       exit
    fi
    for i in $*
      do
         find -f $i
         if [ -f $i ]
         then
             rm -f $i
             apagado=$((apagado+1))
         fi
         echo "Foram apagados $apagado ficheiro"
    exit
    
    
    Alguém me sabe dizer onde isto está errado?

    Cumprimentos
     
    Última edição: 17 de Novembro de 2008
  2. Thrasher

    Thrasher Power Member

    Aqui falta um test ou uns [ ] para testar a condição e após isso, se quiseres o then na mesma linha tens que colocar ; após a condição!

    Edit:
    No segundo bold, esqueceste-te de fazer referencia ao valor da variavel apagados, logo deves colocar isto:

    apagados = $(($apagados + 1))

    e esqueceste-te de terminar o ciclo for com o done...
     
    Última edição: 17 de Novembro de 2008
  3. noitib

    noitib Power Member

    Código:
    #!/bin/bash
    apagados=0
    if [ $#=0 ]
       then
             echo "não foram passados parâmetros"
       exit
    fi
    for i in $*
      do
         find -f $i
         if [ -f $i ]
         then
             rm -f $i
             apagado=$(($apagado+1))
         fi
         echo "Foram apagados $apagado ficheiro"
       done
    exit
    

    assim?
     
    Última edição: 17 de Novembro de 2008
  4. Thrasher

    Thrasher Power Member

    Vê o edit do meu primeiro post;)
     
  5. noitib

    noitib Power Member

    Acho que já entendi o erro. Obrigado ;)
     

Partilhar esta Página