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 à...
Le remplacement de variables en shell Bash Voir=Le remplacement de variables= Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
[Shell] Créer un fichier vide VoirPour créer un fichier vide, il vous suffit de taper la commande suivante : > fichier Vous pouvez également utiliser la commande touch : touch fichier
VBScript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (VBScript associe le mot clé true à...

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