2 votes

Comment puis-je utiliser la sortie de la commande précédente ?

J'essayais de supprimer tous les fichiers d'un dossier avec l'identifiant .class J'ai donc créé un petit Shell Shell. Quelqu'un peut-il me dire pourquoi cela ne fonctionne pas et me proposer une solution à mon problème ?

Le script :

#!/bin/bash

ls | grep .class  
for i in $*
do    
rm $i
done

7voto

Stewart Points 1385

Tout d'abord, pour supprimer tous les fichiers avec l'option .class extension, vous n'avez besoin de rien de plus que :

rm *.class

Dans tous les cas, en règle générale, vous ne devriez pas essayer d'analyser la sortie de ls . Il échouera pour n'importe quel nom de fichier étrange.

Pour référence future, pour itérer sur les résultats d'une commande, utilisez une commande while boucle. Par exemple :

command | while read i; do rm "$i"; done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X