Jump to content
View in the app

A better way to browse. Learn more.

Next

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Résolu] petit soucis dans un script

Featured Replies

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...

Edited by tyrann27

  • Author

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é.

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 ?

  • Author

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:

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

  • Author

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

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").

  • Author

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 ;)

  • Author

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...

  • Author

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:

Archived

This topic is now archived and is closed to further replies.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.