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

Problème tableau en sh et pas en bash

4 réponses
Avatar
Alexandre DECORNY
Bonjour à la liste,

J'utilise depuis quelques années un script backup mysql maison en sh. Je
me suis rendu compte qu'une maj sur un de mes serveurs debian testing
plantait mon script.

Voici la partie du code incriminée :

#!/bin/sh
#TAB_BASE_SQL[0]="mysql"
#TAB_BASE_SQL[1]="dotclear"
#TAB_BASE_SQL[2]="bddtest2"

Renvoi :

/root/backupweb.sh: 9: TAB_BASE_SQL[0]=mysql: not found
/root/backupweb.sh: 10: TAB_BASE_SQL[1]=dotclear: not found
/root/backupweb.sh: 11: TAB_BASE_SQL[2]=bddtest2: not found



Ce script continu de tourner sans problème sur mes serveurs debian stable.

Chose très étrange j'ai changé l'environnement d'execution par bash
(#!/bin/bash) et maintenant mon script fonctionne à nouveau.

J'ai un peu chercher mais je ne trouve pas de documentation sur le
sujet. Quelqu'un a t'il déjà rencontré ce genre de problème ? Avez vous
vu passé un changelog au niveau de l'environnement sh concernant les
tableaux ?

Par avance merci pour votre aide.

Alex

___________________________________________________

Ce message a été vérifié par l'antivirus de MDaemon 5 .

Par précaution, n'ouvrez pas de pièces jointes de correspondants inconnus.
___________________________________________________

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org

4 réponses

Avatar
Alexandre DECORNY
Charles Plessy a écrit :
Le Mon, Aug 24, 2009 at 10:34:53AM +0200, Alexandre DECORNY a écrit :

Chose très étrange j'ai changé l'environnement d'execution par bash
(#!/bin/bash) et maintenant mon script fonctionne à nouveau.




Bonjour Alexandre,

le lien symbolique /bin/sh pointe désormais par défaut sur /bin/dash dans les
systèmes fraîchement installés. Les scripts nécessitant des fonctions
spécifiques à bash doivent exécuter bash spécifiquement.

S'agissant des systèmes mis à jour, /bin/sh devrait continuer à pointer sur
/bin/bash à moins que l'utilisateur n'accepte le changement lors d'un dialogue
Debconf. Si le changement est arrivé automatiquement, c'est un bug…

Amicalement,




Je viens de vérifier sur ce serveur, en effet le lien a changé vers
dash. Je n'ai pas souvenir d'avoir autorisé ce changement. A moins que
pour ce paquet la réponse par défaut est l'acceptation du changement de
lien (ce serait étonnant).

En tout cas, je comprend mieux le pourquoi du comment :)

Merci

Alex

___________________________________________________

Ce message a été vérifié par l'antivirus de MDaemon 5 .

Par précaution, n'ouvrez pas de pièces jointes de correspondants inconnus.
___________________________________________________

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Julien Valroff
Le lundi 24 août 2009 à 17:40 +0900, Charles Plessy a écrit :

S'agissant des systèmes mis à jour, /bin/sh devrait continuer à
pointer sur
/bin/bash à moins que l'utilisateur n'accepte le changement lors d'un
dialogue
Debconf. Si le changement est arrivé automatiquement, c'est un bug…



`dpkg-reconfigure dash' devrait permettre de vérifier cela (la priorité
debconf est peut-être mal ajustée sur ton système si la question ne t'a
pas été posée).

Julien

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Charles Plessy
Le Mon, Aug 24, 2009 at 10:34:53AM +0200, Alexandre DECORNY a écrit :

Chose très étrange j'ai changé l'environnement d'execution par bash
(#!/bin/bash) et maintenant mon script fonctionne à nouveau.



Bonjour Alexandre,

le lien symbolique /bin/sh pointe désormais par défaut sur /bin/dash dans les
systèmes fraîchement installés. Les scripts nécessitant des fonctions
spécifiques à bash doivent exécuter bash spécifiquement.

S'agissant des systèmes mis à jour, /bin/sh devrait continuer à pointer sur
/bin/bash à moins que l'utilisateur n'accepte le changement lors d'un dialogue
Debconf. Si le changement est arrivé automatiquement, c'est un bug…

Amicalement,

--
Charles Plessy
Tsurumi, Kanagawa, Japon

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Alexandre DECORNY
Julien Valroff a écrit :
Le lundi 24 août 2009 à 17:40 +0900, Charles Plessy a écrit :

S'agissant des systèmes mis à jour, /bin/sh devrait continuer à
pointer sur
/bin/bash à moins que l'utilisateur n'accepte le changement lors d'un
dialogue
Debconf. Si le changement est arrivé automatiquement, c'est un bug…




`dpkg-reconfigure dash' devrait permettre de vérifier cela (la priorité
debconf est peut-être mal ajustée sur ton système si la question ne t'a
pas été posée).

Julien




Le problème doit venir de moi. J'ai bien le dialogue qui apparait. Voila
ce que c'est que d'intervenir sur un serveur pendant les vacances :)


Merci à vous,

Alex

___________________________________________________

Ce message a été vérifié par l'antivirus de MDaemon 5 .

Par précaution, n'ouvrez pas de pièces jointes de correspondants inconnus.
___________________________________________________

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS