Rechercher : dans
Par :

Shell : tester si un repertoire est vide

Dernière réponse le 12 nov 2008 à 16:20:29 steffy74, le 12 nov 2008 à 15:35:46 
 Signaler ce message aux modérateurs

Bonjour,


J'aimerai savoir s'il est possible de tester simplement si un repertoire est vide.
J'essaie en récupérant la sortie de la commande ls mais ça ne marche pas comme je voudrai.

ex :

result=$(ls ./traitement)
echo $result
# si il y a au moins un fichier
if test -n $result
then 
...


si il y a un seul ou pas de fichier ça va mais s'il y a plusieurs fichier dans le répertoire j'ai une erreur.

Quelqu'un aurait-il un autre piste à me suggérer ?

merci
Configuration: Windows XP
Firefox 3.0.3

Meilleures réponses pour « shell : tester si un repertoire est vide » dans :
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Comment vérifier si mon antivirus est actif ? VoirLe test Si vous avez des doutes sur le fait que votre antivirus soit actif, il vous suffit de télécharger le fichier suivant: http://www.eicar.org/download/eicar_com.zip Si votre antivirus bloque le téléchargement et vous affiche une alerte,...
Perl - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...

1

steffy74, le 12 nov 2008 à 15:57:52

Il n'y a personne pour m'aider ??
Sniff...

Répondre à steffy74

2

dubcek, le 12 nov 2008 à 16:07:36

Une seule ligne suffit
result=$(ls ./traitement|head -1)

Répondre à dubcek

3

steffy74, le 12 nov 2008 à 16:13:59

Merci ça marche , en fait le -head 1 signifie que tu ne prends que la première ligne du résultat ?

Répondre à steffy74

4

dubcek, le 12 nov 2008 à 16:18:01

Oui,parce que
result=$(ls ./traitement)
s il y a 25 fichiers, result va faire 25 lignes ce qui pose un problème pour le test
ou alors faire
if test -n "$result"

Répondre à dubcek

5

steffy74, le 12 nov 2008 à 16:19:48

Merci pour tes explications
Comment je mets ce sujet en "résolu" ?

Répondre à steffy74

6

 dubcek, le 12 nov 2008 à 16:20:29

Cliquer sur résolu dans ton 1er message

Répondre à dubcek
Collection CommentÇaMarche.net