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
Configuration: Windows XP
Firefox 3.0.3

8 réponses

  1. As tu les memes paquets concernant mysql sur les deux ordis ?
    0
    1. Modérateur
      Salut,

      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".
      0
      1. 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
        0
        1. Non je parles pas des paquets Mysql mais des paquets concernant mysql. Il doit t'en manquer un je pense
          0
        2. Modérateur
          line 31 : syntax error : unexpected end of file
          Et c'est laquelle cette ligne ???

          Il est entier ton script là ?
          0
        3. @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...
          0
      2. Je vais voir ça, mais dans ce cas, il devrais pas me sortir une erreur mysql??
        0
        1. j'ai bien rajouté le set -xv mais il me dit invalide option3: set : -
          apparement il ne connait pas l'option "v"
          0
          1. 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
            0
            1. Modérateur
              expr: expression non numérique
              Tu peux afficher la sortie de ton script avec le débogage activé s'il te plaît, merci ?
              0
            2. @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
              0
            3. Modérateur
              @Alucard95Non avec l'option -x (et -v si elle marche) afin de voir comment sont interprétées chaque commande et variable...
              0
          2. 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
            0
            1. Modérateur
              Tu peux afficher le résultat de :
              cat -A ton-script
              0