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

Re: /bin/sh naar bash i.p.v. dash linken



On Sat, Dec 26, 2020 at 09:13:23PM +0200, Wouter Verhelst wrote:
> On Sat, Dec 19, 2020 at 06:01:31PM +0100, Cecil Westerhof wrote:
> > Ik had helemaal niet gereageerd. :'-(
> > 
> > Richard Lucassen writes:
> > > > > On Wed, 25 Nov 2020 10:52:57 +0100 Cecil Westerhof wrote:
> > >
> > >> Ik heb er zelf nooit last van gehad, maar door een vraag van iemand
> > >> anders kwam ik erachter dat sh een link is naar dash. Is er een
> > >> mogelijk heid om bij installatie sh naar bash te laten verwijzen?
> > >
> > > ln -sf /bin/bash /bin/sh

Lees vooral verder


> > Dat kan niet na een upgrade terug worden gezet door Debian?
> 
> Nope.
> 
> > > zou ik zeggen, Na installatie dan. Maar verwijs in je eigen scripts
> > > gewoon naar /bin/bash als je bash wilt, dan ben je niet meer
> > > afhankelijk van het feit van hoe de /bin/sh staat.
> > 
> > Ik gebruik in mijn (bash) scripts altijd (dat is meer portable):
> >     #!/usr/bin/env bash
> > 
> > Zelf heb ik het probleem dus ook niet. Liep er tegenaan in een andere
> > groep waar iemand er over 'klaagde'.
> 
> De reden dat /bin/sh naar dash verwijst, en niet naar bash, is omdat:
> 
> - dash sneller opstart,
> - je als je /bin/sh zegt, je alleen commando's zou mogen gebruiken die
>   effectief door POSIX als onderdeel van de sh interface gedefinieerd is
>   en er dus geen verschil zou mogen zijn,
> 
> Het gebruik van bash-specifieke functies in een /bin/sh script is niet
> portable. Op elk systeem dat een andere shell gebruikt dan bash als
> /bin/sh zal dat niet werken.

Hoe dat kan?   bash is tien keer groter dan dash?

" $ ls -l $(which bash) $(which dash)
" -rwxr-xr-x 1 root root 1254856  4 nov 18:01 /bin/bash
" -rwxr-xr-x 1 root root  125560 12 nov 08:58 /bin/dash
 
> FreeBSD heeft in de default configuratie bijvoorbeeld bash zelfs niet
> geïnstalleerd staan.
> 
> Op macOS is de default shell lang bash geweest, maar dat is nooit
> geüpgradet geweest toen bash naar GPLv3 gegaan is (dus de default bash
> op macOS is nu wel *heel* erg oud), en ze zijn daar recent op zsh
> overgestapt.
> 
> Het "probleem" dat /bin/sh niet bash is, is dus zeker niet
> Debian-specifiek.
> 
> Bij Debian is op een bepaald moment de symlink van bash naar dash
> verplaatst geweest. Dat is expliciet gelimiteerd op de versie-overgang
> waarbij dat aangezet is. Het is dus maar één keer, en het terugzetten is
> ook een ondersteunde configuratie (i.e., als je dat nodig hebt mag je
> het gewoon doen).

De pijn van het terugzetten komt pas als je het shell script wat
voor jou werkt ( want /bin/sh link naar /bin/bash verbergt bashism features) 
niet werkt voor de ander ( want /bin/sh link naar /bin/dash )
 


> To the thief who stole my anti-depressants: I hope you're happy
>   -- seen somewhere on the Internet on a photo of a billboard


Groeten
Geert Stappers
-- 
Silence is hard to parse.


Reply to: