Problème passage de paramètres entre shell et Mysql
3 réponses
Jean Luc BOUGEARD
Bonjour
Je voudrais passer la variable shell $NOM à une requête Mysql (voir
ci-dessous).
Comment peut-on faire ?
Doit-on à chaque fois concaténer le début de la requête + Variable + fin de
la requête.
Doit-on utiliser Perl ?
Merci d'avance
NOM=`echo ${LINE}|awk -F";" '{print $1}'`
echo $NOM
mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateforme
Dans la commande : mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateforme La variable $NOM n'est pas interprété. La commande ne renvoie rien
jlb
"Stephane CHAZELAS" a écrit dans le message news:
Le Tue, 23 Sep 2003 13:46:31 +0200, Jean Luc BOUGEARD écrivait :
[...]
NOM=`echo ${LINE}|awk -F";" '{print $1}'`
ou NOM=${LINE%%;*}
echo $NOM mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateforme
En en quoi ça ne marche pas ?
Cette ligne de commande (si NOM="toto" par exemple) est censé appeler mysql avec en parametres:
argv[0] = "mysql" argv[1] = "-e" argv[2] = "SELECT nom FROM domaine WHERE nom='toto';" argv[3] = "plateforme"
-- Stéphane
Stephane CHAZELAS
Le Tue, 23 Sep 2003 14:40:23 +0200, Jean Luc BOUGEARD écrivait :
Dans la commande : mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateforme La variable $NOM n'est pas interprété. La commande ne renvoie rien [...]
[merci de poster à l'endroit]
En principe, si.
Tape "set -x" avant de lancer la commande, pour voir ce qu'il fait exactement. Peut-etre que tu as des espaces de trop.
-- Stéphane
Le Tue, 23 Sep 2003 14:40:23 +0200, Jean Luc BOUGEARD <jeanluc.bougeard@francetelecom.com> écrivait :
Dans la commande : mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';"
plateforme
La variable $NOM n'est pas interprété. La commande ne renvoie rien
[...]
[merci de poster à l'endroit]
En principe, si.
Tape "set -x" avant de lancer la commande, pour voir ce qu'il
fait exactement. Peut-etre que tu as des espaces de trop.
Le Tue, 23 Sep 2003 14:40:23 +0200, Jean Luc BOUGEARD écrivait :
Dans la commande : mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateforme La variable $NOM n'est pas interprété. La commande ne renvoie rien [...]
[merci de poster à l'endroit]
En principe, si.
Tape "set -x" avant de lancer la commande, pour voir ce qu'il fait exactement. Peut-etre que tu as des espaces de trop.
-- Stéphane
Pascal Bourguignon
"Jean Luc BOUGEARD" writes:
Bonjour
Je voudrais passer la variable shell $NOM à une requête Mysql (voir ci-dessous). Comment peut-on faire ? Doit-on à chaque fois concaténer le début de la requête + Variable + fin de la requête. Doit-on utiliser Perl ?
Non, surtout pas! Si les quotations shells sont trop compliquées, utiliser un vrai language de programmation. Par exemple, lisp.
NOM=`echo ${LINE}|awk -F";" '{print $1}'` echo $NOM mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateform
Avec bash, ça marche. Sinon, on peut utiliser:
mysql -e "SELECT nom FROM domaine WHERE nom="'"$NOM"'";" plateforme
-- __Pascal_Bourguignon__ http://www.informatimago.com/ Do not adjust your mind, there is a fault in reality.
Je voudrais passer la variable shell $NOM à une requête Mysql (voir
ci-dessous).
Comment peut-on faire ?
Doit-on à chaque fois concaténer le début de la requête + Variable + fin de
la requête.
Doit-on utiliser Perl ?
Non, surtout pas! Si les quotations shells sont trop compliquées,
utiliser un vrai language de programmation. Par exemple, lisp.
NOM=`echo ${LINE}|awk -F";" '{print $1}'`
echo $NOM
mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateform
Avec bash, ça marche.
Sinon, on peut utiliser:
mysql -e "SELECT nom FROM domaine WHERE nom="'"$NOM"'";" plateforme
--
__Pascal_Bourguignon__
http://www.informatimago.com/
Do not adjust your mind, there is a fault in reality.
Je voudrais passer la variable shell $NOM à une requête Mysql (voir ci-dessous). Comment peut-on faire ? Doit-on à chaque fois concaténer le début de la requête + Variable + fin de la requête. Doit-on utiliser Perl ?
Non, surtout pas! Si les quotations shells sont trop compliquées, utiliser un vrai language de programmation. Par exemple, lisp.
NOM=`echo ${LINE}|awk -F";" '{print $1}'` echo $NOM mysql -e "SELECT nom FROM domaine WHERE nom='$NOM';" plateform
Avec bash, ça marche. Sinon, on peut utiliser:
mysql -e "SELECT nom FROM domaine WHERE nom="'"$NOM"'";" plateforme
-- __Pascal_Bourguignon__ http://www.informatimago.com/ Do not adjust your mind, there is a fault in reality.