Como posso usar a saída do comando anterior?

2

Eu estava tentando remover todos os arquivos em uma pasta com a extensão .class , então fiz um pequeno script de shell. Alguém pode me dizer por que não está funcionando e oferecer uma solução para o meu problema?

O script:

#!/bin/bash

ls | grep .class  
for i in $*
do    
rm $i
done
    
por identicon 29.09.2015 / 13:43

1 resposta

7

Primeiro, para excluir todos os arquivos com a extensão .class , você não precisa de nada além de:

rm *.class

Em qualquer caso, como regra geral, você não deve tentar analisar a saída de ls . Ele irá falhar para praticamente qualquer nome de arquivo estranho.

Para referência futura, para iterar os resultados de um comando, use um loop while . Por exemplo:

command | while read i; do rm "$i"; done
    
por terdon 29.09.2015 / 13:50