[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: INIT + bash



* mess-mate <messmate@free.fr> [2005-11-12 20:55] :
> Frédéric Bothamy <frederic.bothamy@free.fr> wrote:
> | * mess-mate <messmate@free.fr> [2005-11-11 10:42] :
> | > Bonjour,
> | > j'ai un problème d'erreur qui se manifeste juste après que le noyau
> | > termine son travail et que init soit lancé.
> | > L'erreur est la suivante : '[: ==: unexpected operator'.
> | > Donc après 
> | > NET: registered protocol family 1
> | > INIT: version 2.86 booting
> | > [: == : unexpected operator
> | > [: == : unexpected operator
> | > [: == : unexpected operator
> | > Mounting kernelbased filesystem .. [: == : unexpected operator
> | > etc...
> | > 
> | > J'ai déjà remplacé sysvinit, /etc et bash sans changement.
> | > Il va sans doute que cela vient de bash donc probablement d'un
> | > script ou config ? 
> | > Certainement pas des cripts en init.d puisque ceux-ci ont déjà été
> | > remplacés sans résultat.
> | > Quelqu'un pourrait me mettre sur une voie ??
> | 
> | Tu n'aurais pas un /bin/sh qui ne pointe pas sur bash, mais sur dash ?
> | Je ne reproduis cette erreur qu'avec dash et pas bash :
> | 
> | [bash]
> | $ [ "toto" == "toti" ]; echo $?
> | 1
> | 
> | [dash]
> | $ [ "toto" == "toti" ]; echo $?
> | [: 1: ==: unexpected operator
> | 
> | Si c'est bien cela, cela veut dire que l'un de tes scripts de démarrage
> | n'est pas conforme POSIX : il utilise une fonctionnalité de bash. Tu
> | as quelle distribution sur cette machine ? Tu peux lancer 
> | 
> | grep == /etc/init.d/*
> | 
> | Cela devrait nous donner le nom du script fautif.
> | 
> | 
> | Fred
> | 
> | -- 
> En plein dans le mile... :)
> Cela fait des jours que j'arrive pas à trouver la faille.
> sh pointait sur ash et en créant le lien vers bash c'est résolu..
> C'est bizarre, ash est donc trop simplist ?

Non, c'est simplement que le script en question indique qu'il fonctionne
avec /bin/sh alors qu'il utilise en fait une fonctionnalité spécifique
de /bin/bash (non POSIX). C'est ce qu'on appelle un "bashisme" et c'est
un bogue du paquet fournissant le script.

Voir aussi :

http://lintian.debian.org/reports/Tpossible-bashism-in-maintainer-script.html


Fred

-- 
Comment poser les questions de manière intelligente ?
http://www.gnurou.org/documents/smart-questions-fr.html
Comment signaler efficacement un bug ?
http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html



Reply to: