Posté(e) le 11 avril 200817 a 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... Modifié le 14 avril 200817 a par tyrann27
Posté(e) le 11 avril 200817 a Auteur 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é.
Posté(e) le 11 avril 200817 a 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 ?
Posté(e) le 11 avril 200817 a Auteur 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
Posté(e) le 11 avril 200817 a 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
Posté(e) le 11 avril 200817 a Auteur 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
Posté(e) le 11 avril 200817 a 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").
Posté(e) le 12 avril 200817 a Auteur 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
Posté(e) le 14 avril 200817 a Auteur 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...
Posté(e) le 15 avril 200817 a ... 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 ? Modifié le 15 avril 200817 a par Aefron
Posté(e) le 15 avril 200817 a Auteur 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
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.