Kornshell

Fermé
doudou - 14 déc. 2005 à 14:41
 doudou - 14 déc. 2005 à 16:14
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

Configuration: linux

2 réponses

gregregre1 Messages postés 22 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 27 décembre 2005 7
14 déc. 2005 à 15:46
if [ `ls -ltr|wc -l` -ge 4 ]; then
rm a*
else
echo "le nombre de fichier est inferieure a 4"
fi 


déjà c'est if [....] then action else action fi
ensuite c'est -ge -le -lt -gt -eq pour comparer
enfin pour interpreter une commande pour recuperer une valeur c'est entre back-quotes ``

man ksh
0
Bonjour

Deja merci pour ta reponse !mais meme en faisant un copier coller de ce que tu ma mis voila ce qu'il me dit :
[linux1 coucou]$ ./effacé
./effacé: line 1: [: ls |wc -l: integer expression expected
le nombre de fichier est inferieure a 4
[linux1 coucou]$

Encore une fois merci.
0