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
A voir également:
- TCL : fichier de configuration en shell
- Tcl channel - Forum Téléviseurs
- Chaînes sur tv tcl - Forum TV & Vidéo
- Tcl replay - Forum TV & Vidéo
- Connexion limitée wifi tv tcl ✓ - Forum Téléviseurs
- Av adapter tcl - Forum Téléviseurs
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 dirais: depuis le shell, appeller le fichier de configuration shell, appeller le script TCL et récupérer les variables d'environnement avec env
Réponse obtenue à partir de http://wiki.tcl.tk/706
::::::::::::::
test.cfg
::::::::::::::
::::::::::::::
test.sh ou test.tcl (peut importe)
::::::::::::::
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
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:
Comme ça on ne touche oas dut otu au corps du code tcl.
::::::::::::::
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 commande
exec 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.
- juste exécuter le script shell ?
- l'exécuter et recupérer dans le tcl des variables du shell ?
- l'exécuter et récupérer dans tcl les sorties du script shell ?
pour exécuter du shell depuis tcl, il faut utiliser exec plutot que source, qui attend du tcl
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.
mais tu peux modifier le tcl ?
depuis un shell, tu exécutes le fichier de configuration shell, puis tu exécutes le tcl duquel tu pourras récupérer les variables shell
par ex.
Voici un exemple, avec la descritpion de chaque fichier.
Fichier de configuration: variables.cfg (Shell)
Fichier à executer: execution.tcl
Le but est donc de rapatrier toutes les variables de "variables.cfg" pour l'execution du tcl...
Encore merci.