Aller au contenu

[Résolu] petit soucis dans un script


Messages recommandés

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

mmmmmmh non

En fait je travaille dans une bouse de langage qui s'appelle NATURAL (pas taper :transpi:) 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 :craint:

Lien vers le commentaire
Partager sur d’autres sites

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 :D

Lien vers le commentaire
Partager sur d’autres sites

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 :D

Lien vers le commentaire
Partager sur d’autres sites

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 :pleure:

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

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 :transpi:

grrrrrrrrrrrrrr :ane:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...