Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème passage de paramètres entre shell et Mysql

3 réponses
Avatar
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

3 réponses

Avatar
Jean Luc BOUGEARD
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



Avatar
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

Avatar
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.