En fait je veux creer script qui fait ceci :
vérifier si un dossier /toto est vide
si il est vide quitter
sinon continuer à vérifier !
Merci... Je crois que je suis perdu totalement !!
Coincoin22
Version imprimable
En fait je veux creer script qui fait ceci :
vérifier si un dossier /toto est vide
si il est vide quitter
sinon continuer à vérifier !
Merci... Je crois que je suis perdu totalement !!
Coincoin22
regardes si le résultat est zéro...Code:ls -a /toto | sed -e "/\.$/d" | wc -l
merci mais comment récupérer cette valeur pour que lorsqu'elle est nulle, cela quitte ma commande... Si non nulle alors je reteste mon dossier...
Merci, je sens que ça avance merci !!
essaies cela
Code:
1
2
3
4
5 var=`ls -a /toto | sed -e "/\.$/d" | wc -l` if [ $var -lt 0 ] then exit 0 fi
pas eu le temps de tester... mais c'est l'idée ;)
Non ça me mets erreur...
J'ai récupérer la valeur
var=$(ls -a /toto/ | sed -e "/\.$/d" | wc -l)
Ensuite il faut un truc dans le genre mais je suis novice
if $var=0
then exit
fi
Est ce que il va récupérer la variable une nouvelle fois si elle est différente de zéro...
Est ce que le test tourne en rond ?
En fait je veux tester en boucle car je veux qu'il quitte le bash quand un serveur aura récupérer les fichier dans /toto...
Merci. Je peux te donner plus d'explications si tu veux.
J'ai un autre souci...
var=$(ls -a /toto | sed -e "/\.$/d" | wc -l)
if [ "$var" -eq "2" ];
then echo "Bien vu"
fi
Le script me répond "integer expression expected"
Un pb de variable ?? String ou autre ??
Merci
Code:
1
2
3
4
5
6
7 var=$(ls -a . | sed -e "/\.$/d" | wc -l) echo $var sleep 5 if [ $var -eq 0 ] then exit fi
testé et approuvé :P
On approche
Mais il me renvoit
décidemment...Code:sleep bad character in argument
Qu'est ce que cela veut dire ??Code:Syntax error near unexpected token 'fi'
fi c'est pour déclarer la fin du if ;)
un peu comme do ... done ;)
je pense que tu devrais essayer de "prendre" un cours de bash... ça peut t'aider à mieux comprendre :)
http://marcg.developpez.com/ksh/
http://eric-sanchis.developpez.com/linux/shell/bash/
Je sais tres bien mais il ne l'accepte pas ....!
Voici mon code !
Le FI est là !!Code:
1
2
3
4
5 var=$(ls -a /toto| sed -e "/\.$/d" | wc -l) echo $var if [ $var -eq 0 ]; then exit fi
pour la n-ième correction :tagcode:
voici mon fichier exemple...
15 fichiers dans ~/tempCode:
1
2
3
4
5
6
7
8
9
10
11 var=$(ls -a . | sed -e "/\.$/d" | wc -l) echo $var if [ $var -eq 0 ]; then exit 0 fi var=$(ls -a temp_ftp/ | sed -e "/\.$/d" | wc -l) echo $var if [ $var -eq 0 ]; then exit 1 fi
0 fichiers dans ~/temp/temp_ftp
voici ce que cela affiche
Code:
1
2
3
4 gorgonite@GorgonMobile:~/temp$ bash test.sh ; echo $? 15 0 1
Yop,
ce code passe très bien, j'ai testé sous ksh d'un AIX5.3 sans aucun soucis, aurais-tu par hasard fais un copier coller à partir de windows???Code:
1
2
3
4
5 var=$(ls -a toto| sed -e "/\.$/d" | wc -l) echo $var if [ $var -eq 0 ]; then exit fi
Car tu as surement un petit problème avec tes retour chariots ^^
@++
F-k-z
Je suis désolé mais ça ne fonctionne pas...
Je vais arrêter de t'embêter... Je vais aller voir sur un autre forum.
J'ai toujours l'erreurPb de type string ou autre...Code:"integer expected"
Si tu as des tuyaux n'hésite pas tout de même !
Désolé !
quel shel utilises-tu ? quelle version ? quelle version de sed ?
parce que là, ça devient louche :?
donnes le résultat de l'exécution avec l'option -v
Yop,
la ligne
te marque cette erreur quand tu l'executes seule ?Code:var=$(ls -a toto| sed -e "/\.$/d" | wc -l)
et avec cellec-i
@++Code:var=`ls toto/|wc -w`
F-k-z
version bash 2.05
Ta commande m'affiche bien le nombre de fichier (2)
c vrai que j'utilise windows et je teste mon bash sur une machine via telnet
C ensuite que ça coince !
Yop,
comme tu édites sous windows, essaies d'ouvrir ton script sous unix, ou fait un simple
et regarde s'il n'y a pas de caractéres génants qui sont apparus ;)Code:cat tonfichier
sinon essai de remplacer ma commande par
Comme cela tu pourras aussi gérer les fichier cachés ^^Code:var=`ls -a toto/|wc -w`; var=$(($var - 2))
@++
F-k-z
Citation:
Envoyé par f-k-z
avec ma solution aussi... par ailleurs avec cela, que faire si il y a un espace dans le nom de fichiers :P
Merci... Je vais tester tout ça...
J'ai converti mon code windows en unix je vais tester !
C cool de m'aider !
Merci
CA MARCHE... JE TE REMERCIE VRAIMENT !
Mais le test ne fait pas de boucle ! J'aimerai que tant qu'il n'est pas vide, le prog continue de tester ...
Je t'embête encore... Désolé... C'est bon j'ai trouvé !! Merci encore pour tout !!
Juste un truc quelle est la commande pour fermer ma fenetre bash définitivement... MerciCode:
1
2
3
4
5
6
7 var=$(ls -a /toto | sed -e "/\.$/d" | wc -l) echo $var while [ $var -ne 0 ] do var=$(ls -a /toto | sed -e "/\.$/d" | wc -l) echo $var done
Yop,
avec exit?
@Gorgonite: Heuuuuuuu, enfin, étant donné l'état des choses, ca lui permettait d'avoir une réponse :mrgreen: :mrgreen: :dehors: Puis il a qu'a pas mettre d'espace dans un nom de fichier nan? copain??? :]]]]]]]]]]]]
@+
F-k-z