Ajuda em Shell Script

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:
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
[B]if $#=0 then[/B]
   echo "não foram passados parâmetros"
   exit
fi
for i in $*
  do
     find -f $i
     if [ -f $i ]
     then
         rm -f $i
         [B]apagado=$((apagado+1))[/B]
     fi
     echo "Foram apagados $apagado ficheiro"
exit
Alguém me sabe dizer onde isto está errado?

Cumprimentos

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:
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:
Back
Topo