# Script pour mysql , problème de syntaxe

**URL:** <https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 9:50 UTC](https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678 "2016-02-21T21:50:21Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 21, 2016, 9:50 UTC](https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678/1 "2016-02-21T21:50:21Z")

</div>

Hello 🙂  
Je code un petit script pour envoyer 3 ou 4 commandes les plus courantes,

oui mai bon :

un simple mots de passe qui peux contenir tout ce qui passe (a moins de filtrer les entrées…)

```auto
echo $'(safadsf*+$öä£ü!;:_-.,`?=)(/&ç"+§°{}[]´~´¢|¬§°#@¦%+%*&"$$@¦ç/*%(&/GDJDV\\''^'/)(=?`?`pè$àl-,BNVNHJ)'
```

```auto
-bash: erreur de syntaxe près du symbole inattendu « ) »
```

sa commance bien … ![:angry-banghead:](https://www.debian-fr.org/uploads/default/original/1X/03590d98a359a447ce7713c78201cdb8a8cfdb6b.gif "Bang Head")

oui mai c’ est pas fini:

```auto
function test(){
echo "Debug" $1 $2 ${$3}
mysql -D $db -u $user -p$pass_postfix -e "update comptes set password=ENCRYPT($3) where email=$2@$Domaine;"
}
```

on retrouve donc le problème 2 fois:  
$2@$Domaine  
$3  
je donne ma langue aux chat, il y a un moyen d’y parvenir ?

je pense que le script/bash est incapable(ou c’est moi:oops: ) de gérer la string, doit-je me tourner vairs autre chose comme le c++ ?

merci d’avance

---

<div class="post-metadata">

**Author:** ![Watael](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/a4c791/32.png) [@Watael](https://www.debian-fr.org/u/Watael)\
**Post date:** [Février 21, 2016, 9:50 UTC](https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678/2 "2016-02-21T21:50:28Z")

</div>

salut,

pourquoi utilises-tu ces formes particulières : $’’ et ${$3} ?  
la première sert à développer des "caractères protégés par contre-oblique remplacés comme indiqué par le standard ANSI C"  
la seconde voudrait appeler un paramètre positionnel du script en utilisant un paramètre positionnel de la fonction.

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 21, 2016, 9:50 UTC](https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678/3 "2016-02-21T21:50:29Z")

</div>

Bonjour,  
pour le simple oubli de ma par , mai le problème ne change pas  
Merci de m’avoir lu

---

<div class="post-metadata">

**Author:** ![cedric058](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/d2c977/32.png) [@cedric058](https://www.debian-fr.org/u/cedric058)\
**Post date:** [Février 21, 2016, 9:54 UTC](https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678/4 "2016-02-21T21:54:05Z")

</div>

[quote=“panthere”]un simple mots de passe qui peux contenir tout ce qui passe (a moins de filtrer les entrées…)

```auto

```

```auto

```

sa commance bien … ![:angry-banghead:](https://www.debian-fr.org/uploads/default/original/1X/03590d98a359a447ce7713c78201cdb8a8cfdb6b.gif "Bang Head") [/quote]

A voir:

```auto

```

[quote=“panthere”]`function test(){
echo "Debug" $1 $2 ${$3}
mysql -D $db -u $user -p$pass_postfix -e "update comptes set password=ENCRYPT($3) where email=$2@$Domaine;"
}`  
on retrouve donc le problème 2 fois:  
$2@$Domaine  
$3  
je donne ma langue aux chat, il y a un moyen d’y parvenir ?

je pense que le script/bash est incapable(ou c’est moi:oops: ) de gérer la string, doit-je me tourner vairs autre chose comme le c++ ?[/quote]  
A voir si ceci fonctionne:

```auto

```

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 9:54 UTC](https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678/5 "2016-02-21T21:54:06Z")

</div>

Pour ton filtre

```auto

```

Fait le petit a petit, ajout caractère par caractère s’il le faut. Sinon si tu regarde les parenthèses il en manque une fermante.

Nous donner des bouts de ton scrits n’aide pas a la compréhension, essaye de nous donner un exemple que l’on puisse exécuter et reproduire le bug sinon.  
Dernier truc met toi en [set -x](http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html) pour débugger ton script.

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 21, 2016, 9:58 UTC](https://www.debian-fr.org/t/script-pour-mysql-probleme-de-syntaxe/66678/6 "2016-02-21T21:58:03Z")

</div>

[quote=«&nbsp;Mimoza&nbsp;»]Pour ton filtre

```auto
echo $'(safadsf*+$öä£ü!;:_-.,`?=)(/&ç"+§°{}[]´~´¢|¬§°#@¦%+%*&"$$@¦ç/*%(&/GDJDV\\''^'/)(=?`?`pè$àl-,BNVNHJ)'
```

Fait le petit a petit, ajout caractère par caractère s’il le faut. Sinon si tu regarde les parenthèses il en manque une fermante.

Nous donner des bouts de ton scrits n’aide pas a la compréhension, essaye de nous donner un exemple que l’on puisse exécuter et reproduire le bug sinon.  
Dernier truc met toi en [set -x](http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html) pour débugger ton script.[/quote]

Le scripte est celui cité bon dans une boucle qui lis un fichier longin/pass. mai le souci principal c’est que le mots de passe lui peux contenir n’importe qu’elle caractères et tout viens de là. vouloir les gerés deviens un casse tête et peux lisible le nombre diffère, la longueur aussi etc.

J’ai contourner le problème en interdisant les caractères du shell, donc sa tourne

Merci pour vos réponse. ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")
