probleme curieux avec un script [RESOLU]

probleme curieux avec un script [RESOLU] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 19-02-2003 à 14:44:17    

probleme curieux sur un script
 

#!/bin/bash
ls *zip | cat -n | more
echo -n "JEUX ? "
read N
J=`ls | cat -n | grep $N | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8" "$9}'`
./snes9x -nojoy "$J"
exit $?


 
le script reponds  
 

cannot open : D Zone.zip


 
aussitot je fais un copier coller de la ligne du script  
dans la meme console aussitot apres  
 

./snes9x -nojoy "$J"


 
et la ça marche  
 
alors pourquoi cette meme commande ne fonctionne pas a l'interieur du script ????????
 
pour les noms sans espaces ca marche nickel mais justement le but du script est de pas taper les noms de fichier mais au pire 3 chiffres de leur numero
 
vous avez une idée ???


Message édité par vimaster le 20-02-2003 à 08:16:48

---------------
I love vi editor. it's the best one.
Reply

Marsh Posté le 19-02-2003 à 14:44:17   

Reply

Marsh Posté le 19-02-2003 à 20:23:41    

comprend pas,  
ta syntaxe est ok
j'aurrai surement fait qlque chose de similaire....
 
c'est d'autant plus bizare que si tu copy/paste la ligne de commande finale ca marche.....
 
mystere ....
 
voila un cas d'ecole auquel s'atteler...
developpeurs shells le defis est a relever....trouver pk ca merde


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 19-02-2003 à 21:10:23    

fé un echo de tte ta commande comme ceci :
echo "./snes9x -nojoy $J"
pour voir la commande kil compte t'exécuter...

Reply

Marsh Posté le 19-02-2003 à 21:46:23    

Le Sot Zi a écrit :

fé un echo de tte ta commande comme ceci :
echo "./snes9x -nojoy $J"
pour voir la commande kil compte t'exécuter...


 
./snes9x -nojoy ../Zen Nihon Pro Wrestling (J).zip
 
ca donne ca..normal que ca marche pas a cause des espaces
 
par contre avec les "" autour de $J ca donne
./snes9x -nojoy "../Zen Nihon Pro Wrestling (J).zip"
 
donc pas de problemes d'espaces....


Message édité par kuroineko le 19-02-2003 à 21:48:45

---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 19-02-2003 à 21:59:36    


Error opening: /home/kneko/stockage/divers/"Zen Nihon Pro Wrestling (J).zip   "
kneko@linux:~/stockage/divers/snes9x-1.39.orig> more ./JEUX
#!/bin/sh
ls ../*zip | cat -n
echo -n "Quel jeu ? "
read JEU
cd ..
J=`ls *zip | cat -n | grep $JEU`
J=`echo $J | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8" "$9}'`
./snes9x-1.39.orig/snes9x -nojoy /home/kneko/stockage/divers/\""$J"\"
exit 0
kneko@linux:~/stockage/divers/snes9x-1.39.orig>


 
bon en inserant les " de force avant et apres $J

on voit dans le message d'erreur que le nom pris en charge integre des espaces fantomes apres le dernier caractere du nom de fichier si le nom de fichier ne remplit pas le AWK soit 8 elements dans le noms.....
 
c'est ca qui merde...
 
mais alors comment faire pour lui faire selectioner que les X mots existant selon le nom de fichier ?

y'a des fichiers sans espaces
d'autres de 2, 3, 4, 5 jusqu'a 8 mots....


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 19-02-2003 à 22:03:22    

kuroineko a écrit :


 
./snes9x -nojoy ../Zen Nihon Pro Wrestling (J).zip
 
ca donne ca..normal que ca marche pas a cause des espaces
 
par contre avec les "" autour de $J ca donne
./snes9x -nojoy "../Zen Nihon Pro Wrestling (J).zip"
 
donc pas de problemes d'espaces....
 

Magnifique ce (J) !!! je parie ke ça vient de là !!!

Reply

Marsh Posté le 19-02-2003 à 22:08:53    

Le Sot Zi a écrit :

Magnifique ce (J) !!! je parie ke ça vient de là !!!


 
non ca c'est juste pour dire VO  version Japonaise si tu preferes
 
et les parentheses posent pas probleme puisque le nom de fichier est entre "" donc inutile de genere \( ou \) pour less parentheses.
 
en plus le probleme est le meme sur les nom de fichiers qui ne mentionnenet pas de version ni (J) ni (E) ni (U)...
 
par exemple aero fighter.zip


Message édité par kuroineko le 19-02-2003 à 22:10:37

---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 20-02-2003 à 00:22:23    

En remplaçant J= par :
J=`ls *.zip | cat -n | sed 's/^\ *//' | grep "^$N" | head -1 | sed 's/^[0-9]*//' | cut -b 2- `
 ça ne va pas mieux ?
 
 Enfin, j'aime pas trop le 'cat -n' qui renvoie une tabulation ici (je ne sais pas si c'est tout le temps vrai.) Le 'head -1' permet de ne renvoyer qu'un seul résultat. $N doit être le numéro de la ligne et pas un nom de fichier, sinon ça ne marche plus
 
 V'là, c'est une piste...
 
<fainéant> Une autre idée : remplacer les espaces dans les noms de fichiers par un '_' (par exemple) ?  </fainéant>


Message édité par unk00 le 20-02-2003 à 00:25:26
Reply

Marsh Posté le 20-02-2003 à 07:02:01    

unk00 a écrit :

En remplaçant J= par :
J=`ls *.zip | cat -n | sed 's/^\ *//' | grep "^$N" | head -1 | sed 's/^[0-9]*//' | cut -b 2- `
 ça ne va pas mieux ?
 
 Enfin, j'aime pas trop le 'cat -n' qui renvoie une tabulation ici (je ne sais pas si c'est tout le temps vrai.) Le 'head -1' permet de ne renvoyer qu'un seul résultat. $N doit être le numéro de la ligne et pas un nom de fichier, sinon ça ne marche plus
 
 V'là, c'est une piste...
 
<fainéant> Une autre idée : remplacer les espaces dans les noms de fichiers par un '_' (par exemple) ?  </fainéant>


 
Merci c'est cool avec sed ca marche...


#!/bin/sh
ls ../*zip | cat -n
echo -n "Quel jeu ? "
read JEU
cd ..
J=`ls *.zip | cat -n | sed 's/^\ *//' | grep "^$JEU" | head -1 | sed 's/^[0-9]*//' | cut -b 2- `
/home/kneko/stockage/divers/snes9x-1.39.orig/snes9x -nojoy /home/kneko/stockage/divers/"$J"
exit 0


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 20-02-2003 à 08:16:28    

Bon ben j'ai plus qu'a faire pareil ....mettre un SED
 
Merci  :jap:  :jap:


---------------
I love vi editor. it's the best one.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed