Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 22-01-2020 22:11:07

bypbop
Membre
Inscription : 27-03-2019

Bash script sauvegarde mysql

Bonjour j'essaye d'exclure les base information_schema mysql Database en faisant ceci mais cela ne fonctionne pas


#!/bin/bash
listedesbdd=$( echo 'show databases' | mysql -u root --password="xxxxxxx" )
for bddbame in $listedesbdd
do
if [ $bddname != "information_schema" ] && [ $bddname != "mysql" ] && [ $bddname != "Database" ]
then
echo "La variable vaut " $bddbame
fi
done
 



Le reste du script fonctionne correctement mais j'ai un bug au niveau du if




root@ns3094961:~/Fichiers# ./savebdd.sh
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unaire attendu
./savebdd.sh: ligne 5 : [: != : opérateur unai



bien à vous,
bypbop

Hors ligne

#2 23-01-2020 22:20:00

leonlemouton
Adhérent(e)
Distrib. : Buster
(G)UI : Mate ∨ LXQt
Inscription : 14-08-2012

Re : Bash script sauvegarde mysql

Si ça peut aider...
https://abs.traduc.org/abs-fr/ch07s03.html
Good luck !

Leonlemouton
°(")°

Hors ligne

#3 24-01-2020 20:42:32

MicP
Membre
Inscription : 29-02-2016

Re : Bash script sauvegarde mysql

Bonjour

Tu avais tapé un b à la place d'un n dans le nom de certaines variables
ce qui fait que la variable bddname testée était toujours vide.

J'ai mis en évidence les erreurs en rouge et en gras:

#!/bin/bash
listedesbdd=$( echo 'show databases' | mysql -u root --password="xxxxxxx" )
for bddbame in $listedesbdd
do
if [ $bddname != "information_schema" ] && [ $bddname != "mysql" ] && [ $bddname != "Database" ]
then
echo "La variable vaut " $bddbame
fi
done


=======
Essaye plutôt avec ça :

#!/bin/bash

listedesbdd=$( echo 'show databases' | mysql -u root --password="xxxxxxx" )

for bddname in $listedesbdd; do
  if [ $bddname != "information_schema" ] && [ $bddname != "mysql" ] && [ $bddname != "Database" ]
    then echo "La variable vaut " $bddname
  fi
done

Dernière modification par MicP (30-01-2020 16:51:48)

Hors ligne

Pied de page des forums