Correction shell
dino
-
crabs Messages postés 909 Statut Membre -
crabs Messages postés 909 Statut Membre -
bonjour
je suis debutant dans la programmation shel,j'essaye d 'ecrire un tout peitit script qui calcule le nbr de fichier et rep. s'il la trouve > 4 il efface ceux qui commence par a sinon il dit "le nombre de fichier est inferieur a 4 ,mais qd je l'execute ,sachant qu le nombre est <4 il me renvoit ce message :
rm: ne peut évaluer par lstat() `a*': Aucun fichier ou répertoire de ce type
pour quoi il m'ecrit pas ce que je lui demande
Voici mon script :
if ls -ltr|wc -l >=4
rm a*
then
echo "le nombre de fichier est inferieure a 4"
fi
Merci pour votre aide
je suis debutant dans la programmation shel,j'essaye d 'ecrire un tout peitit script qui calcule le nbr de fichier et rep. s'il la trouve > 4 il efface ceux qui commence par a sinon il dit "le nombre de fichier est inferieur a 4 ,mais qd je l'execute ,sachant qu le nombre est <4 il me renvoit ce message :
rm: ne peut évaluer par lstat() `a*': Aucun fichier ou répertoire de ce type
pour quoi il m'ecrit pas ce que je lui demande
Voici mon script :
if ls -ltr|wc -l >=4
rm a*
then
echo "le nombre de fichier est inferieure a 4"
fi
Merci pour votre aide
A voir également:
- Correction shell
- Classic shell - Télécharger - Personnalisation
- Activer correction automatique android - Guide
- Le correcteur automatique de votre smartphone vous rend fou ? Voici comment le désactiver - Accueil - Mobile
- Telecharger clavier français avec correction - Télécharger - Divers Utilitaires
- Mode correction word - Guide
1 réponse
Salut,
Le shell n'est pas un langage de programmation comme les autres...
Voici comment tu peux evaluer le nombre d'entrées (sans . et ..) dans un dossier
que ces entrées soient des fichiers ou des dossiers.
Pour l'explication de '[ $NB -ge 4 ]' => man test
Si tu veux vraiment compter les fichiers et effacer les 4 plus anciens :
Pour effacer les fichiers remplacer le echo "... $FILES" par rm $FILES
A+, crabs
Le shell n'est pas un langage de programmation comme les autres...
Voici comment tu peux evaluer le nombre d'entrées (sans . et ..) dans un dossier
que ces entrées soient des fichiers ou des dossiers.
#!/bin/sh NB=`ls -1 | wc -l` if [ $NB -ge 4 ] ; then echo "Au moins 4 entrées ($NB)" else echo "Moins de 4 entrées ($NB)" fi
Pour l'explication de '[ $NB -ge 4 ]' => man test
Si tu veux vraiment compter les fichiers et effacer les 4 plus anciens :
#!/bin/sh FILES="" NB=0 for f in `ls -1tr` ; do [ -f $f ] || continue FILES="$FILES $f" NB=`expr $NB + 1` ## peut être remplacer par $((NB++)) en bash if [ $NB -ge 4 ] ; then echo "Plus de 4" echo "Les plus anciens = $FILES" break fi done
Pour effacer les fichiers remplacer le echo "... $FILES" par rm $FILES
A+, crabs