Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1531 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Scripts Shell] Commandes find & echo - probleme d'affichage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Scripts Shell] Commandes find & echo - probleme d'affichage

n°771202
nartu elxe
Gul Dukat Fanatic !
Posté le 21-06-2004 à 11:57:46  profilanswer
 

j'essaye d'executer le script suivant :
 

Citation :

#!/bin/bash
 
str="find . -name \"*.html\""
echo `$str`


 
ce script est cense me donner la liste des fichiers html presents dans tous mes sous-repertoires, mais il ne m'affiche rien. Pourtant quand je fais un echo "$str", il m'affiche bien : find . -name "*.html"
 
une idee?

mood
Publicité
Posté le 21-06-2004 à 11:57:46  profilanswer
 

n°771257
burgergold
5$? va chez l'diable!
Posté le 21-06-2004 à 12:36:03  profilanswer
 

echo ca l'affiche la string, ca ne l'exécute pas...


---------------
http://www.boincstats.com/signature/user_664861.gif
n°771302
nartu elxe
Gul Dukat Fanatic !
Posté le 21-06-2004 à 13:15:22  profilanswer
 

Faux, car quand je fais ca :
 

Citation :

#!/bin/bash
 
str="find . -name *.html"
echo `$str`


 
j'obtiens juste la liste des fichiers html dans le repertoire courant...

n°771304
burgergold
5$? va chez l'diable!
Posté le 21-06-2004 à 13:16:02  profilanswer
 

javais pas vu les `` :D


---------------
http://www.boincstats.com/signature/user_664861.gif
n°771315
nartu elxe
Gul Dukat Fanatic !
Posté le 21-06-2004 à 13:26:47  profilanswer
 

ok ^^

n°771524
serimal
Posté le 21-06-2004 à 16:03:12  profilanswer
 

==> echo `eval $str`
 
find . -name \"*.html\"
ca fourni un retour imprévisible : le * est remplacé par ce que le shell trouve dans le repertoire courant ....
 
 
 

n°772258
matafan
Posté le 22-06-2004 à 03:18:56  profilanswer
 

Non, puisque le « * » est entre « " ».

n°772449
serimal
Posté le 22-06-2004 à 11:03:20  profilanswer
 

eval "*" est différent de eval \"*\"
c'est pareil pour find  

n°773690
matafan
Posté le 23-06-2004 à 03:35:46  profilanswer
 

Ben oui mais justement, il les avait les double quotes... Je comprend pas ce que tu veux dire à propos du « * ». Il a juste à ajouter le eval comme tu l'as dit, et ça roule.

n°773778
serimal
Posté le 23-06-2004 à 09:24:47  profilanswer
 

quand tu lances : find . -name \"*.html\"
le shell remplace * (il n'est pas neutralisé) par ce qu'il trouve dans le repertoire courant qui peut correspondre
 
ex 1 : si tu as un fichier qui s'appelle "ty.html"
commande : find . -name \"*.html\"
le shell interprete : find . -name "ty.html" et trouve  
./"ty.html"
ex 2 : si tu as 2 fichiers ("ty.html"    "ty2.html" ) qui  
correspondent au masque ca plantera  
find . -name \"*.html\"
le shell interprete : find . -name "ty.html" "ty2.html"
find: bad option "ty2.html"
d'ou ma remarque sur le comportement imprévisible de ce type de commande qui dépend du contenu du repertoire
 
 

mood
Publicité
Posté le 23-06-2004 à 09:24:47  profilanswer
 

n°777380
nartu elxe
Gul Dukat Fanatic !
Posté le 25-06-2004 à 08:57:02  profilanswer
 

en fait fallait juste faire :
 
str = `find . -name \"*.html\"`
 
merci de votre aide :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Scripts Shell] Commandes find & echo - probleme d'affichage

 

Sujets relatifs
Probleme de conversionProblème de logique : relation plusieurs à plusieurs
[JavaScript]Probleme de "ciblage" d'un élémentProblème sur serveur dédié !
Executer commandes externes via exec avec un apache chrooté[C] euh.... Probleme sur un truc pas tres dur (1er post + lisible)
[VB6] [WMI] Probleme de connection a un pc distantPHP probleme easyphp et mysql_fetch_array
Probleme de lien sur une image dans une divproblème avec les threads
Plus de sujets relatifs à : [Scripts Shell] Commandes find & echo - probleme d'affichage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR