Bash qui marche sous ubuntu et pas sousdebian
Bonjour,
Alors voila mon soucis j'ai fais un script bash qui fonctionne très bien sous ubuntu mais pas sous debian ou la j'ai l'erreur command not found.
Le problème c'est que je ne trouve pas qu'elle est la partie qui ne fonctionne pas vu qu'il n'y a pas de détail dans le message d'erreur. Voici le script:
#!/bin/bash
table=( $( echo "use database; show tables;" | mysql --user=zabbix --password=zabbix ) )
nb=$( echo ${#table[@]} )
nb=`expr $nb - 1`
i=1
while [ $i -le $nb ]; do
echo "usedatabase; alter table ${table[$i]} engine = innodb;" | mysql --user=user --password=password;
echo ${table[$i]};
i=`expr $i + 1`;
echo $i;
done
Voila, si quelqu'un arrive à voir ou se trouve l'erreur.
Merci d'avance
Alors voila mon soucis j'ai fais un script bash qui fonctionne très bien sous ubuntu mais pas sous debian ou la j'ai l'erreur command not found.
Le problème c'est que je ne trouve pas qu'elle est la partie qui ne fonctionne pas vu qu'il n'y a pas de détail dans le message d'erreur. Voici le script:
#!/bin/bash
table=( $( echo "use database; show tables;" | mysql --user=zabbix --password=zabbix ) )
nb=$( echo ${#table[@]} )
nb=`expr $nb - 1`
i=1
while [ $i -le $nb ]; do
echo "usedatabase; alter table ${table[$i]} engine = innodb;" | mysql --user=user --password=password;
echo ${table[$i]};
i=`expr $i + 1`;
echo $i;
done
Voila, si quelqu'un arrive à voir ou se trouve l'erreur.
Merci d'avance
Configuration: Windows XP Firefox 3.0.3
8 réponses
-
As tu les memes paquets concernant mysql sur les deux ordis ?
-
ModérateurSalut,
Déjà rajoute en dessous du shebang :set -xv
pour rendre ton script verbeux. Rajoute l'option "-n" si tu ne veux pas qu'il soit exécuté, mais juste vérifier.
Tu peux aussi ajouter l'option "-e" si tu veux que l'exécution s'arrête dès qu'une commande renvoie "faux".
-
Alors, pour les paquets mysql ils sont tous les 2 à la version 5.
Alors le résultat de la commande bash -n script .sh est :
line 31 : syntax error : unexpected end of file-
-
-
@jipicyBah la ligne 31 c'est la ligne du "done" (j'ai enlevé tous mes commentaires perso sur le script que j'ai posté dsl) et oui normalement il manque rien...
-
-
Je vais voir ça, mais dans ce cas, il devrais pas me sortir une erreur mysql??
-
j'ai bien rajouté le set -xv mais il me dit invalide option3: set : -
apparement il ne connait pas l'option "v" -
Alors, voila tous le message d'erreur (j'ai enleve le set -xv) à la commande bash script.sh
: commande not found
: commande not found
: commande not found
: commande not found
: commande not found
: commande not found
expr: expression non numérique
: commande not found
: commande not found
: commande not found-
-
@jipicyheu... avec le debogage activé c'est à dire avec l'option --debugger??
Si c'est bien ça le message d'erreur est le même -
Modérateur@Alucard95Non avec l'option -x (et -v si elle marche) afin de voir comment sont interprétées chaque commande et variable...
-
-
Alors voila ce que ça me retourne :
+ $'\r'
: command not found
+ $'\r'
: command not found
+ table=()
+ $'\r'
: command not found
+ $'\r'
: command not found
++ echo 0
+ nb=$'0\r'
+ $'\r'
: command not found
+ $'\r'
: command not found
++ expr $'0\r' - 1
expr: argument non numérique
+ nb=$'\r'
+ $'\r'
: command not found
+ $'\r'
: command not found
+ i=$'1\r'
+ $'\r'
: command not found
script.sh: line 30: syntax error: unexpected end of file -
ModérateurTu peux afficher le résultat de :
cat -A ton-script