Executer plusieurs commandes dans une variable [Résolu] [KSH] - Shell/Batch - Programmation
Marsh Posté le 09-05-2012 à 15:53:10
ReplyMarsh Posté le 09-05-2012 à 16:25:55
Il faudrait utiliser \c pour empêcher le retour à la ligne (si c'est ça le problème). Par exemple :
echo "1 \c"; echo "2 \c"; |
Marsh Posté le 09-05-2012 à 17:55:53
En fait c'est pour la simplicité de la conf.
Dans le fichier de conf il y a une partie déclencheur, puis l'autre partie execution de commande.
Par exemple je surveille dans le repertoire /tmp l'arrivée du fichier foo.bar, et lorsqu'il arrive je le copie dans un autre repertoire puis je lance un traitement.
Ce qui donnera :
Code :
|
Marsh Posté le 10-05-2012 à 16:23:30
ReplyMarsh Posté le 10-05-2012 à 18:04:10
Nukolau a écrit : Il faut utiliser eval :
|
Parfait ! Ca marche niquel. Merci !
Marsh Posté le 11-05-2012 à 05:20:20
Il ne faut pas utiliser eval.
On peut le faire, mais c'est dangereux.
(les solutions faciles ne sont souvent pas les plus sûres : tu prends le raccourci qui passe dans le bois, mais il y a un loup !)
utilise une fonction.
Marsh Posté le 11-05-2012 à 09:31:49
Je ne comprends pas pourquoi tu dis qu'il ne faut pas utiliser eval ? pour quelle raison ?
J'ai déjà écrit un paquet de script avec sans avoir eu de problèmes (très pratique par exemple pour log la commande exacte que tu vas exécuter).
Marsh Posté le 11-05-2012 à 14:30:28
Effectivement, je comprends ce que tu voulais dire par c'est dangereux.
Maintenant, à partir du moment où tu es sur de ce que tu fait (ie tu ne te bases pas sur des données accessibles à un tiers), ben pas de soucis.
Enfin tu as raison, le warning sur cette commande n'était pas de trop, même si dans le cas présent, si j'ai bien compris la demande initiale, le problème ne devrait pas avoir lieu.
Marsh Posté le 24-05-2012 à 11:31:11
En effet merci pour cette précision. Enfin dans mon cas je maîtrise ce qu'il y a dans les variables et du coup je vais éviter d'allonger le temps de développement.
Marsh Posté le 07-05-2012 à 16:10:48
Bonjour,
Pour les besoins d'un script kornshell (ksh), je dois exécuter plusieurs commandes séparées par un point-virgule (;) contenues dans une variable TRAITEMENT.
Le problème est que les différentes commandes sont éxecutées comme si elles formaient seulement 1 commande.
Un exemple sera plus clair :
Lorsque je tape directement les commandes séparées par un point-virgule :
Maintenant lorsque je passe le traitement dans une variable. Le echo m'affiche bien exactement ce que j'ai au dessus, pourtant à l'execution je n'ai pas le même comportement :
Comment puis-je faire pour executer ces 2 commandes dans ma variable ?
Par avance merci pour votre aide.
Message édité par ChOoN le 10-05-2012 à 18:04:51