script apagar ficheiro

pmlopes

Membro
Quem pode dar ajuda ao que parece simples:

criar ficheiro : touch "~/Tmp/ab_ cd _ ef.log";

Agora criar script remove file.sh:
#!/bin/bash
mfolder=~/Tmp/

mfile=find "$mfolder" -type f -name *.log;

rm -f "'$mfolder$mfile'";

exit;

ao executar /bin/bash remove file.sh, o ficheiro não é removido!
Alguém consegue explicar porquê ?
obrigado
 
Quem pode dar ajuda ao que parece simples:

criar ficheiro : touch "~/Tmp/ab_ cd _ ef.log";

Agora criar script remove file.sh:
#!/bin/bash
mfolder=~/Tmp/

mfile=find "$mfolder" -type f -name *.log;

rm -f "'$mfolder$mfile'";

exit;

ao executar /bin/bash remove file.sh, o ficheiro não é removido!
Alguém consegue explicar porquê ?
obrigado

Ora tens 2 opções para descobrires o porquê do script não funcionar:

Acrescentar -x asseguir ao #!/bin/bash: #!/bin/bash -x
Isto é o modo "debug"
Ou então quando o lanças acrescenta esta opção:
/bin/bash -x remove file.sh

Eu sei qual é o erro, mas assim tu vais ver também :)

Aconselho a não usares espaços em nomes de ficheiros ou folders, podes vir a ter problemas mais tarde.

Outra opção no remove, é executares o comando rm directamente no find:

find tmp/ -type f -name "*.log" -exec rm {} \;
 
Também aconselho a dar uma olhadela ao pipefail algo que uso em quase todos os meus scripts, permite definir várias flags desde a mostrar no output os comandos executados ou forçar a falha do script caso referencies uma variável indefinida...
 
Back
Topo