TCL : fichier de configuration en shell
bijnok
Messages postés
87
Statut
Membre
-
bijnok Messages postés 87 Statut Membre -
bijnok Messages postés 87 Statut Membre -
Bonjour,
j'ai un script tcl qui utilise un fichier de configuration codé en Shell pour se connecter à mysql. Les paramètres de connexion sont dans le fichier de configuration.
Mon problème est que je n'arrive pas à rapatrier les variables du fichier de configuration dans tcl.
Il est hors de question de changer le fichier de configuration en format tcl car il est utilisé par d'autres ressources.
J'ai essayé
mais une erreur intervient à l'execution parce que tcl essaie de compilé la déclaration des variables qui sont en Shell...
Merci par avance
j'ai un script tcl qui utilise un fichier de configuration codé en Shell pour se connecter à mysql. Les paramètres de connexion sont dans le fichier de configuration.
Mon problème est que je n'arrive pas à rapatrier les variables du fichier de configuration dans tcl.
Il est hors de question de changer le fichier de configuration en format tcl car il est utilisé par d'autres ressources.
J'ai essayé
set fichier_conf [source ./chemin/du/fichier/de/conf/conf.cfg]
mais une erreur intervient à l'execution parce que tcl essaie de compilé la déclaration des variables qui sont en Shell...
Merci par avance
2 réponses
-
hello
je dirais: depuis le shell, appeller le fichier de configuration shell, appeller le script TCL et récupérer les variables d'environnement avec env-
-
-
Je vais essayer d''éclaircir mes propos.
J'ai un script tcl qui a besoin de variables pur fonctionner Ces variables sont contenues dans un fichier de configuration codé en Shell.
Le but est d'executer le script TCL en utilisant les variables contenues dans la configuration Shell sans faire de modifications dans le fichier de configuration parce que celui-ci est aussi utilisé par des scripts shell.
Merci de prendre de ton temps pour m'aider.
Fais moi signe si d'autres éclaircissements sont nécessaires ou si tu veux un exemple. -
-
Dans ton exemple cela fonctionne avec une variable, mais pas avec un fichier contenant la déclaration des variables; il me semble avoir essayer.
Voici un exemple, avec la descritpion de chaque fichier.
Fichier de configuration: variables.cfg (Shell)
Nom = 'Bijnok' Date = 'Aujourd'hui' Sujet = 'galère avec tcl'
Fichier à executer: execution.tcl
puts $Nom a ecrit $Date dans le sujet $Sujet
Le but est donc de rapatrier toutes les variables de "variables.cfg" pour l'execution du tcl...
Encore merci.
-
-
Réponse obtenue à partir de http://wiki.tcl.tk/706
::::::::::::::
test.cfg
::::::::::::::#!/bin/bash export a=toto export b=tata
::::::::::::::
test.sh ou test.tcl (peut importe)
::::::::::::::#!/bin/bash #\ . "./test.cfg" #\ exec tclsh "$0" "$@" puts $env(a) puts $env(b) puts "fin"
Finalement, il faut transformer le tcl en sh (l'extension ne change rien, là je parle de la première ligne du fichier qui indique l'interpréteur à utiliser).
Il faut ajouter#\
avant chaque ligne de code shell afin que ces lignes de code ne provoque pas d'erreur lorsque l'on appel le script en tcl avec la commandeexec tclsh "$0" "$@"
.
En fait #\ est un commentaire pour le shell ET pour le tcl mais pour le tcl la ligne qui suit #\ est aussi un commentaire !!
Il faut aussi faire un export de toutes les variables du fichier de configuration utilisées par le tcl.
dubcek
hello
je dirais: depuis le shell, appeller le fichier de configuration shell, appeller le script TCL et récupérer les variables d'environnement avec env
En effet, avec ajout des#\
Encore merci à toi dubcek
________________________________
EDIT
________
Pour éviter d'avoir à trop modifier le fichier tcl, on a déclarer les variables tcl en début de fichier en récupérant les variables shell: exemple:var1_tcl=$env(var1_shell) var2_tcl=$env(var2_shell) var3_tcl=$env(var3_shell)
Comme ça on ne touche oas dut otu au corps du code tcl.