|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : mars 2004 Messages : 122 ![]() |
Bonjour,
J'aimerais avoir un éclaircissement sur la commande test avec le parametre e. Mon code : Code :
Par contre lorque j'execute ce code, je passe toujours par le else (echo error) et ce malgré que j'ai des fichiers dans le répertoire mentionné. Le but est seulement de vérifier l'existence d'au moins un fichier... peut-etre il y a une meilleure facon de procéder et votre aide là dessus est apprécié. merci |
||
|
|
00
|
|
|
#2 | ||||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 069 ![]() |
bonjour,
les expansions ne sont pas réalisées entre guillemets. dans ton cas, j'utiliserais un tableau, et vérifierais qu'il existe au moins un élément : Code :
Code :
|
||||
|
|
10
|
|
|
#3 | ||
|
Membre habitué
![]() Inscription : février 2008 Messages : 159 ![]() |
Bonjour,
Autre façon de faire (je n'ai jamais utilisé la commande test): Code :
Cordialement, Elverion
__________________
Vous n'arrivez pas à faire ce que vous voulez avec Linux? Read The Fine Manual !==>The Linux Documentation Project |
||
|
|
10
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 069 ![]() |
bonjour Elverion,
ça ne marchera pas si : - le nom de fichier contient un ou des espaces - le répertoire contient plusieurs fichiers |
|
|
10
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : mars 2004 Messages : 122 ![]() |
ok je vais regarder les 2 options...
La solution du -e me semblait vraiment plus facile mais bon je vais les essayer et vous revenir. |
|
|
00
|
|
|
#6 | ||
|
Membre à l'essai
![]() Inscription : mars 2004 Messages : 122 ![]() |
Bonjour,
La piste de Elverion fonctionne... voici le code : Code :
Il y a plusieurs fichiers dans mon répertoire par contre il n'y a pas d'espace dans les noms... merci |
||
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Je reste persuadé qu'un simple "ls *.csv" sur le répertoire et un test sur le code retour serait le plus approprié, d'autant plus que ton test actuel je ne suis pas sûr qu'il marche aussi bien que tu le dis, la preuve : Code :
|
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 069 ![]() |
voilà, voilà. Hormis, si on peux ne pas utiliser une commande externe, on s'en passe; par économie de temps et de ressources.
Il faut donc privilégier l'usage de test, [, ou [[ dans les scripts, pour ... faire des tests |
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : février 2011 Messages : 83 ![]() |
A noter, que les doubles crochets acceptent les noms de fichiers avec espaces (mais qu'ils ne marchent qu'en bash).
|
|
|
00
|
|
|
#10 | ||||
|
Membre Expert
![]() |
Je me permets d'apporter mon point de vue qui n'engage que moi.
Certes, chercher à optimiser les temps de traitements etc est une bonne chose, mais pas si cela se fait au détriment de la lecture ! Or entre Code :
Code :
Et je doute que cela impacte beaucoup sur les perfs. |
||||
|
|
00
|
|
|
#11 |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 978 ![]() |
Bonjour;
@ Alek-C : Les deux codes sont suffisamment lisibles si on les indentes correctement. On ne va pas proscrire les expressions bash (au profit de commandes externes en plus Il en est de même pour les regex, on ne va pas les proscrire et faire tout un tas de traitement pour compenser, sous prétexte qu'elles ne nous paraissent pas lisibles. Cordialement, Idriss |
|
00
|
|
|
#12 | |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 069 ![]() |
Citation:
mais, une commande externe plus une commande externe...plus une autre...et, là, ça devient sensible; donc, j'évite d'utiliser la première |
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com