[Linux-bruxelles] bash sous Ubuntu

Jerome Warnier jwarnier at beeznest.net
Dim 6 Mai 22:37:45 CEST 2007


Le vendredi 04 mai 2007 à 21:48 +0200, Aldo a écrit :
> Bsoir Laurent:
> 
> On Fri, May 04, 2007 at 11:17:18PM +0200, Laurent Luyckx wrote:
> > On Fri, 2007-05-04 at 20:47 +0200, Aldo wrote:
> > > Je voudrais savoir si le bash a changé depuis peu: j'ai un script pour 
> > > écouter de la radio qui fonctionne bien sous Sarge, et sous Etch, mais 
> > > refuse de fonctionner sous Feisty:
> > > il est dans /usr/local/bin/ avec d'autres fichiers bash, mêmes perms et 
> > > owner,
> > > les autres fonctionnent, mais le script en question pas:
> > > http://brlspeak.net/blinux/whichstation.tgz
> > > 
> > 
> > Ton script commence par #!/bin/sh
> 
> Oui, idem pour les autres, qui sont plus petits.
>  
> > Peut-être que /bin/sh est un lien vers un autre shell que bash (checke
> > avec un ls -l /bin/sh)
> 
> A ma grande stupéfaction, ... tu as raison, il pointe vers dash
> (hormis que ça laverait plsu blanc je le connais pas celui-là). 
Il n'y a pas de quoi être stupéfait, c'est fait dans le but de réduire
un peu le temps nécessaire au boot.
En effet, dash a pour vocation d'être un Bourne Shell minimaliste. Comme
il utilise beaucoup moins de librairies dynamiques, et que son code est
plus compact que celui de Bash (et qu'il implémente aussi moins de
fonctionnalités) il est plus rapide à charger. Et donc, tous les scripts
init écrits pour /bin/sh (sans spécifier quelle version particulière)
sont moins lourds à exécuter au démarrage.
C'est un effort qui est mené un peu dans toutes les distributions, y
compris dans Debian: faire en sorte que les scripts init n'aient pas
besoin des fonctionnalités particulières de Bash. En plus, ça favorise
la portabilité de ces scripts sous d'autres UNIX (libres ou pas), comme
(Open)Solaris par exemple.

> > Remplacer #!/bin/sh par #!/bin/bash devrait faire l'affaire.
> 
> J'essaye .......
> euh, tu as raison: ça (re)fonctionne.
C'est juste que tes scripts utilisent des spécificités de Bash.

> Du coup, pourquoi les autres qui débutent pas #!/bin/sh s'exécutent eux?
> 
> En tout cas many thnx!
> 
> Ald0
-- 
Jérôme Warnier
FLOSS Consultant
http://beeznest.net





Plus d'informations sur la liste de diffusion Linux-bruxelles