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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Pourquoi mon `ls $1` ne fonctionne pas ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pourquoi mon `ls $1` ne fonctionne pas ???

n°557549
weed
Posté le 16-09-2004 à 01:47:28  profilanswer
 

Code :
  1. for list in `find $1 -exec echo \"{}\" \;`  #je rajoute des double quote pour les fichier/rep ayant un espace
  2. do
  3.         echo "list ==> $list  :"; 
  4.         tmp=`ls $list`
  5.         echo "$tmp";
  6.         # echo "$tmp" | read droits saispas owner group taille mois jour heure nomfichier
  7.         #echo "fichier : $list  proprio : $owner  group : $group" >> list
  8. done


 
 
echo "list ==> $list  :" ==> fonctionne parfaitement  
c'est au niveau de echo "$tmp"; que ca bloque ...
 
 

Code :
  1. $ ./droit /home/weed/Documents/prog/
  2. list ==> "/home/weed/Documents/prog/"  :
  3. ls: "/home/weed/Documents/prog/": No such file or directory
  4. list ==> "/home/weed/Documents/prog/test.c"  :
  5. ls: "/home/weed/Documents/prog/test.c": No such file or directory
  6. list ==> "/home/weed/Documents/prog/test"  :
  7. ls: "/home/weed/Documents/prog/test": No such file or directory


 
et pourtant quand je fais a la main  

Code :
  1. ls "/home/weed/Documents/prog/authentif/protoclient_auth.h"

cela fonctione parfaitement.


Message édité par weed le 16-09-2004 à 10:55:45
mood
Publicité
Posté le 16-09-2004 à 01:47:28  profilanswer
 

n°557614
fguilleme
Posté le 16-09-2004 à 10:42:13  profilanswer
 

je pense que faire un eval "ls \"$f\"" devrait marcher avec $f contenant le nom du fichier sans quotes

n°557638
weed
Posté le 16-09-2004 à 11:08:46  profilanswer
 

fguilleme a écrit :

je pense que faire un eval "ls \"$f\"" devrait marcher avec


 
"$f contenant le nom du fichier sans quotes"
=> tu vaudrait dire qu'il ne faut plus que je mette le exec ? :find $1 -exec echo \"{}\" \;
 
 
je pense que faire un eval "ls \"$f\"" => oki j'essairais tmp=`"ls \"$f\""` pour voire

n°557646
fguilleme
Posté le 16-09-2004 à 11:23:00  profilanswer
 

non oublie le exec
for list in *  
do  
  tmp=$(eval ls \"$list\" ) ou `eval ....`  
  echo $tmp
done

n°557695
weed
Posté le 16-09-2004 à 12:55:59  profilanswer
 

Je ne suis pas sous linux en ce moment mais je suis tres septique la.  
 
 
Je lance mon script : "droit /home/weed/Document"
Mon find me permettait de lister fichier et repertoire avec leur chemin à partir de "/home/weed/Document"
 
et apres en réalité, j'aimerais faire un ls -ld pour faire apparaitre, droit, autheur, group, ..... et le nom du fichier. C'est pour cette raison que par la suite j'aimerais redirgé le flux vers un read et ainsi affecté ds chaque variable, droit, .....
 
 
 
Tu utilise l'étoile, (for list in *). Je crois que ca liste les arguments que l'on passe au script.  
 

n°557702
fguilleme
Posté le 16-09-2004 à 13:17:33  profilanswer
 

ça expande simplement. C'est comme un ls mais plus rapide. Si tu veux plus de controle comme les dates ou des permissions, utilise find.
Pour obtenir les infos sur un fichier utilise stat.

n°557751
weed
Posté le 16-09-2004 à 14:53:41  profilanswer
 

oki oki ca a l'air pas mal du tout  
dt stats vraiment genial. J'ai compris comment utiliser stats en C mais la je suis plutot partit bash,  
et sous bash je ne vois pas comment je pourrais exploiter les codes formats de stats  
 
je pensais utiliser les codes formats avec un printf et apres les affectés dans une variable mais je n'arrive pas afficher le proprio :
 

Code :
  1. [weed@localhost weed]$ printf "usuername => %U",stat CLIENT1.C
  2. bash: printf: `U': invalid format character

n°557756
fguilleme
Posté le 16-09-2004 à 15:02:20  profilanswer
 

utlise l'option format de stat  
stat -format=%U fichier te donne l'owner. C'est pas pour printf

n°557764
weed
Posté le 16-09-2004 à 15:40:00  profilanswer
 

fguilleme a écrit :

utlise l'option format de stat  
stat -format=%U fichier te donne l'owner. C'est pas pour printf


j'ai ton truc, je vais pouvoir bien avancer ce soit  

Code :
  1. stat --format=%U CLIENT1.C


ne pas oublier de mettre 2 petit tiret avant format ;)
 
un tres tres grand merci pour cette fonction vraiment génial comme tout ...
j'allais vraiment me compliquer la vie avec les droits, je peux meme les avoir en octale. C'est vraiment genial, je me repete parce que tu me retire une épine du doight.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Pourquoi mon `ls $1` ne fonctionne pas ???

 

Sujets relatifs
[fvwm] Comment fonctionne xosd et sa fonction osd_cat?[GD] Librairie GD sous perl qui ne fonctionne pas si gcc n'est pas la
Samba, rien ne fonctionne :/[mdk10.0]Mais pourquoi cette ati rage mobility M3 ne fonctionne pas ?
lp fonctionne mais pas lpr[PROB] ADSL Cegetel, fonctionne pas ...
[Mdk10] Résolu: Carte son qui ne fonctionne pas sur portable ASUS S5NSPEEDTOUCH et noyau 2.6.6 ne fonctionne pas ?[et bah si]
courier imap ne fonctionne pasPostfix - envoi vers l'extérieur ne fonctionne pas
Plus de sujets relatifs à : Pourquoi mon `ls $1` ne fonctionne pas ???


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