Script Bash/Dash

Bonjour à tous,

Je vous explique un léger souci :

J’ai un serveur qui était sous Debian Lenny, maintenant sous Squeeze pour quelques tests.
Seulement mon problème c’est qu’il y a des choses qui ont changé lors de la construction des scripts shell, comme des opérateurs qui ne fonctionne plus, j’ai cherché sur google mais sans réel succès (ou je cherche pas la ou il faut…) alors peux être que vous pourrez m’éclairer sur ce sujet, je prends l’exemple de mon code qui ne fonctionne plus (et qui fonctionnait très bien avant) :

if [ ! $TOTO =~ $exp_reg ]; then

$Toto doit contenir des caractères, $exp_reg est une expression régulière, la sortie doit être true ou false.

Sur squeeze j’ai cette erreur :
[: 71: =~: unexpected operator
./essai.sh: 71: Bad substitution

Aucun souci sur lenny…

Merci pour vos idées :slight_smile:

Salut

Je suis tombé sur ca : twiki.cern.ch/twiki/bin/view/Ma … SWonUbuntu, ça ressemble à ton problème :

[: 71: ==: unexpected operator

This is due to the fact that /bin/sh is linked to /bin/dash instead of /bin/bash (see also wiki.ubuntu.com/DashAsBinSh). One can set this back to bash by running sudo dpkg-reconfigure dash and selecting the appropriate answer.

:006

Tu as plusieurs solutions. Tu peux changer le shabang, et mettre #!/bin/bash au lieu de #!/bin/sh
Ou alors, tu adaptes le script en fonction (je crois qu’il faut rajouter des parenthèrses pour que ça marche).
Pour être sûr, voir le

Merci pour vos réponse :slight_smile:

Ton post n’est pas “mal palcé” mais tu aurais ptet plus de réponses dans la section “Programmation”