Script bash pour importer variable de config
Résolu/Fermé
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
-
9 mai 2009 à 01:22
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 2 juin 2009 à 20:07
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 2 juin 2009 à 20:07
A voir également:
- Script bash pour importer variable de config
- Script vidéo youtube - Guide
- Connaitre sa config pc - Guide
- Ms config - Guide
- Importer favoris chrome - Guide
- Importer favoris firefox - Guide
13 réponses
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
5
2 juin 2009 à 18:18
2 juin 2009 à 18:18
c'est résolu je n'ai pas à parser
je cree un fichie config
/etc/config.cfg
VAR1=v
VAR2=w
pui au début de mon scrippt
j'ajoute
source /etc/config.cfg
et le tour est joué :)
je cree un fichie config
/etc/config.cfg
VAR1=v
VAR2=w
pui au début de mon scrippt
j'ajoute
source /etc/config.cfg
et le tour est joué :)
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
5
9 mai 2009 à 02:20
9 mai 2009 à 02:20
La question est la suivante
je n'arrive pas à recuppere les varaiable ds le script toutfois j'ai trouvé la soltion suivante
avec
mapping.cfg contient
base=nom_base
et
jai fait chmod +x /etc/mapping.cfg
2 ça marche mais il y' a til mieux?
je n'arrive pas à recuppere les varaiable ds le script toutfois j'ai trouvé la soltion suivante
#!/bin/bash . ./etc/mapping.cfg if [ -e /opt/topnet/mnt/mysql.pipe ] ; then while [ -e /opt/topnet/mnt/mysql.pipe ] do mysql -u $base --password=syslog -D syslog < /opt/topnet/mnt/mysql.pipe done else mkfifo /opt/topnet/mnt/mysql.pipe fi
avec
mapping.cfg contient
base=nom_base
et
jai fait chmod +x /etc/mapping.cfg
2 ça marche mais il y' a til mieux?
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
9 mai 2009 à 02:00
9 mai 2009 à 02:00
Il manque la question / le problème. Merci de faire un effort sur l'orthographe.
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
9 mai 2009 à 14:46
9 mai 2009 à 14:46
Ben non c'est très bien comme ça, en quoi cette solution ne convient pas ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
5
10 mai 2009 à 19:30
10 mai 2009 à 19:30
Si cette solution est bien pouvez vous ou n'importe qui ici me dire comment en crée un fichier rpm (opensuse)
merci
merci
jeanbi
Messages postés
15118
Date d'inscription
samedi 9 décembre 2006
Statut
Contributeur
Dernière intervention
6 février 2023
2 182
10 mai 2009 à 19:40
10 mai 2009 à 19:40
re,
un script en rpm !!!
je vois pas l'interet , mais bon
http://wiki.mandriva.com/
a+
un script en rpm !!!
je vois pas l'interet , mais bon
http://wiki.mandriva.com/
a+
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
5
10 mai 2009 à 21:33
10 mai 2009 à 21:33
salut
il n'ya pas seuleemnet le scrit il y a :
le fichier config /etc/mapping.cfg
le fichier /user/bin/mapping qui contient ce script la
kle fichier init /etc/init.d/mapping qui permet les commande rcmapping start /stop et status..
je veut faire un fichier rpm qui avec la commande
rpm -Uvh mapping.rpm
installe ces fichiers
merci
il n'ya pas seuleemnet le scrit il y a :
le fichier config /etc/mapping.cfg
le fichier /user/bin/mapping qui contient ce script la
kle fichier init /etc/init.d/mapping qui permet les commande rcmapping start /stop et status..
je veut faire un fichier rpm qui avec la commande
rpm -Uvh mapping.rpm
installe ces fichiers
merci
Blanc57
Messages postés
369
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
27 janvier 2020
73
10 mai 2009 à 22:33
10 mai 2009 à 22:33
erreur...
Je n'avais pas vu les précédentes réponses...
par contre, la syntaxe me parait fausse dans la seconde partie du script, lorsque tu veux déclarer la varable SD :
SD = cat 'config'
Il me semble que ce serait plutôt :
SD=$(cat 'config')
afin que le "car" soit executé car selon ta syntaxe, ta variable SD sera égale à "cat 'config' " sans que la commande "cat" ne soit executée...
Je n'avais pas vu les précédentes réponses...
par contre, la syntaxe me parait fausse dans la seconde partie du script, lorsque tu veux déclarer la varable SD :
SD = cat 'config'
Il me semble que ce serait plutôt :
SD=$(cat 'config')
afin que le "car" soit executé car selon ta syntaxe, ta variable SD sera égale à "cat 'config' " sans que la commande "cat" ne soit executée...
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
5
10 mai 2009 à 23:49
10 mai 2009 à 23:49
merci mais j'ai renancé à cette tentative dead end car même si je rectifie SD=$(cat 'config')
je n'ai aucun moyen d'accéder au variables
base=nom_base
pwd=mot_passe
///////////////////// si vous le savez dites le moi ;)
ds le fichier config
j'ai opté pour la solution suivante
mon problème maintennat est comment créer un rpm qui en l'installant
va copier
le fichier config /etc/mapping.cfg
le fichier /user/bin/mapping qui contient ce script la
le fichier init /etc/init.d/mapping qui permet les commande rcmapping start /stop et status..
merci
je n'ai aucun moyen d'accéder au variables
base=nom_base
pwd=mot_passe
///////////////////// si vous le savez dites le moi ;)
ds le fichier config
j'ai opté pour la solution suivante
#!/bin/bash . ./etc/mapping.cfg if [ -e /opt/topnet/mnt/mysql.pipe ] ; then while [ -e /opt/topnet/mnt/mysql.pipe ] do mysql -u $base --password=syslog -D syslog < /opt/topnet/mnt/mysql.pipe done else mkfifo /opt/topnet/mnt/mysql.pipe fi
mon problème maintennat est comment créer un rpm qui en l'installant
va copier
le fichier config /etc/mapping.cfg
le fichier /user/bin/mapping qui contient ce script la
le fichier init /etc/init.d/mapping qui permet les commande rcmapping start /stop et status..
merci
Blanc57
Messages postés
369
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
27 janvier 2020
73
10 mai 2009 à 23:55
10 mai 2009 à 23:55
Désolé... Je ne pourrai pas vous être d'une plus grande aide quant à la création de votre RPM, n'ayant aucune expérience sur le sujet...
Mais bonne chance malgré tout ;)
Mais bonne chance malgré tout ;)
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
5
11 mai 2009 à 00:02
11 mai 2009 à 00:02
merci
une dernière question
si je fait
SD=$(cat 'config')
le
comment je peut accéder aux variablee contenue dans le fichier config qui sont de ce type
user=blabla
password=titi
base=tata
pipe=toto.pipe
de telle sorte que mon scripte soit
mysql -u $user --password=$password -D $base < /opt/topnet/mnt/$pipe
ou devraige garder le
. ./config au debut du script
merci
une dernière question
si je fait
SD=$(cat 'config')
le
comment je peut accéder aux variablee contenue dans le fichier config qui sont de ce type
user=blabla
password=titi
base=tata
pipe=toto.pipe
de telle sorte que mon scripte soit
mysql -u $user --password=$password -D $base < /opt/topnet/mnt/$pipe
ou devraige garder le
. ./config au debut du script
merci
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
11 mai 2009 à 00:29
11 mai 2009 à 00:29
Tu peux stocker une instruction shell (dont une déclaration de variable) dans une variable shell. Ainsi tu peux tout à fait écrire :
Ça permet notamment de générer des commandes shell à la volée. Toutefois dans ton cas il me parait plus logique d'inclure le fichier via un "source config" ou ". config".
Bonne chance
#!/bin/sh cmd="ls" $cmd
Ça permet notamment de générer des commandes shell à la volée. Toutefois dans ton cas il me parait plus logique d'inclure le fichier via un "source config" ou ". config".
Bonne chance
sezam2
Messages postés
73
Date d'inscription
mercredi 4 février 2009
Statut
Membre
Dernière intervention
26 mars 2010
5
14 mai 2009 à 00:56
14 mai 2009 à 00:56
Bonsoir on est revenu à ala case départ
On m'a refuser la solution de
. .$/etc/mapping.cfg
et je doit faire un script qui récupère des variables d'un fichier de configuation
au secour
On m'a refuser la solution de
. .$/etc/mapping.cfg
et je doit faire un script qui récupère des variables d'un fichier de configuation
#!/bin/bash recupéraion des variable if [ -e /opt/topnet/mnt/mysql.pipe ] ; then while [ -e /opt/topnet/mnt/mysql.pipe ] do mysql -u $base --password=syslog -D syslog < /opt/topnet/mnt/mysql.pipe done else mkfifo /opt/topnet/mnt/mysql.pipe fi
au secour
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
14 mai 2009 à 11:07
14 mai 2009 à 11:07
Bah il faut parser ton fichier de configuration à la main. C'est effectivement dangereux si quelqu'un introduit une ligne malicieuse dans le fichier et que les droits de celui-ci sont moindres que ceux du script.
Dans ton cas, ton script doit donc lire le fichier de configuration lis ligne par ligne. Si la ligne une chaîne contenant un = c'est une affectation (le mieux c'est de vérifier que la ligne à une bonne tête avec une expression régulière).
Ceci fait, il ne reste plus qu'à extraire l'opérande gauche de l'affectation (nom de la variable) et l'opérande droite (valeur).
Bonne chance
Dans ton cas, ton script doit donc lire le fichier de configuration lis ligne par ligne. Si la ligne une chaîne contenant un = c'est une affectation (le mieux c'est de vérifier que la ligne à une bonne tête avec une expression régulière).
Ceci fait, il ne reste plus qu'à extraire l'opérande gauche de l'affectation (nom de la variable) et l'opérande droite (valeur).
Bonne chance
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
2 juin 2009 à 20:07
2 juin 2009 à 20:07
J'ai un peu de mal à suivre. C'est ce que je t'avais dit dans le message <11> sachant que ". /etc/config.cfg " et "source /etc/config.cfg" font la même chose. Or dans <12> tu disais que cette solution avait été rejetée.
Enfin bref, peu importe, l'important c'est que ton problème soit résolu.
Bonne continuation
Enfin bref, peu importe, l'important c'est que ton problème soit résolu.
Bonne continuation