probleme curieux avec un script [RESOLU] - Codes et scripts - Linux et OS Alternatifs
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
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...
Marsh Posté le 19-02-2003 à 21:46:23
Le Sot Zi a écrit : fé un echo de tte ta commande comme ceci : |
./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....
Marsh Posté le 19-02-2003 à 21:59:36
|
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....
Marsh Posté le 19-02-2003 à 22:03:22
kuroineko a écrit : |
Magnifique ce (J) !!! je parie ke ça vient de là !!!
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
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>
Marsh Posté le 20-02-2003 à 07:02:01
unk00 a écrit : En remplaçant J= par : |
Merci c'est cool avec sed ca marche...
|
Marsh Posté le 20-02-2003 à 08:16:28
Bon ben j'ai plus qu'a faire pareil ....mettre un SED
Merci
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.