tyrann27 Posté(e) le 11 avril 2008 Partager Posté(e) le 11 avril 2008 Salut les INpactiens, J'ai un petit soucis dans un script... Si je l'exécute dans un script ça foire car il exécute ligne par ligne. Si par contre je fais un copier-coller dans bash, ça fonctionne ! Donc je suis un peu embêté là... mail-text_att_text.sh \ -f \ -t ' destinataire@provider.com' \ -s TEST \ ' ' \ </dev/null Si quelqu'un a une idée... snif... Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 11 avril 2008 Partager Posté(e) le 11 avril 2008 On peut avoir le contenu du script ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 11 avril 2008 Auteur Partager Posté(e) le 11 avril 2008 C'est le contenu du script. Il en appelle un autre en passant les paramètres que vous voyez. Le principe est que ce que j'ai donné est généré par un programme. Il va ensuite exécuter le script qu'il a généré. Je ne passe aucun paramètre au script généré. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 11 avril 2008 Partager Posté(e) le 11 avril 2008 pourquoi le mettre sur plusieurs lignes ? j'imagine que tu fais du "mail-text_att_text.sh -f -t $dest -s $sujet $msg", avec les variables remplies par un autre scripte, non ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 11 avril 2008 Auteur Partager Posté(e) le 11 avril 2008 mmmmmmh non En fait je travaille dans une bouse de langage qui s'appelle NATURAL (pas taper ) et c'est de là que j'écris le script. Je le fais ligne par ligne parce que dans les jobs engine des batchs c'est fait comme ça (donc je sais que ça fonctionne) mais surtout pour une meilleure lisibilité du code pour mes successeurs et pour un debugging plus facile... (le module pouvant gérer 3x10 (to,cc,bcc) adresses de 70 caractères (qu'il écrit d'office même si c'est du blanc) ça voudrait dire que j'aurais une seule ligne de....... +/- 2500 caractères au total... C'est illisible et impensable. D'où l'écriture sur plusieurs lignes ! Mais en fait, la source du problème est qu'il ne prend pas en compte le \ et donc il lance mail-text_att_text.sh sans aucuns paramètres Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 11 avril 2008 Partager Posté(e) le 11 avril 2008 D'accortd, donc le problème vient bien du langage que tu utilise pour le scripte et qui se chie dessus dès qu'il faut plusieurs lignes ? Dans ce cas, tu peux peut-être mettre chaque ligne dans une variable, et concaténer les variables à chaque fois. à la fin, tu n'exécutes que la variable concaténant toutes les autes. exemple : mail="mail-text_att_text.sh -f" #dest mail="$mail -d bidule" #sujet mail=$mail" -s sujet" [...] $mail pas hyper méga lisible, mais mieux que rien Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 11 avril 2008 Auteur Partager Posté(e) le 11 avril 2008 Effectivement c'est une solution ! Merci lorinc, je vais essayer lundi. Néanmoins je suis frustré de ne pas comprendre pourquoi ça ne fonctionne pas quand j'exécute le script directement sur la machine... Admettons que j'écrive moi-meme le script directement sur la machine, lors de l'éxécution c'est mort. Par contre si je tape les mêmes lignes directement dans le shell, ça fonctionne ! C'est ça qui me rend malade Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 11 avril 2008 Partager Posté(e) le 11 avril 2008 Néanmoins je suis frustré de ne pas comprendre pourquoi ça ne fonctionne pas quand j'exécute le script directement sur la machine...Admettons que j'écrive moi-meme le script directement sur la machine, lors de l'éxécution c'est mort. Par contre si je tape les mêmes lignes directement dans le shell, ça fonctionne ! C'est ça qui me rend malade C'est simple, utilise ton shell (bash?) comme interpréteur... (Par exemple avec "#!/bin/bash" comme première ligne) Après effectivement si tu essayes de comparer le comportement de bash et d'un autre interpréteur ("natural"?), c'est forcé qu'il y ait des différences (sinon natural s'appellerait simplement "bash"). Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 12 avril 2008 Auteur Partager Posté(e) le 12 avril 2008 non non non on s'est mal compris ! Natural écrit le script dans un fichier texte. Ensuite il fait appel à une commande système qui sera sh nomduscript.sh Donc lundi j'essayerai en rajoutant la définition du shell tout en haut mais je n'y crois pas trop Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 14 avril 2008 Auteur Partager Posté(e) le 14 avril 2008 Ayé j'ai trouvé ^^ Quelle connerie... Il y avait un espace derrière chaque backslash qui empechait le bon fonctionnement de ce dernier... Bref... Ca fonctionnne... Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 14 avril 2008 Partager Posté(e) le 14 avril 2008 je compatis... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 15 avril 2008 Partager Posté(e) le 15 avril 2008 ... la loose... bon, à qui ça n'est jamais arrivé, de laisser un espace, après un backslash de fin de ligne (supposément), dans un script ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 15 avril 2008 Auteur Partager Posté(e) le 15 avril 2008 Oui mais moi j'ai une excuse ! C'est parce que j'ai viré l'espace dans la définition du champs dans natural mais que cette bouse écrit la totalité du champ, quelque soit son contenu ! Donc si tu définis un alphanumérique de 1000 caractères. Que tu mets "A" dedans. Lors de l'écriture dans le fichier tu auras "A" suivi de 999 blancs grrrrrrrrrrrrrr Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.