[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 19, 2020 at 06:01:31PM +0100, Cecil Westerhof wrote:
> Ik had helemaal niet gereageerd. :'-(
> 
> Richard Lucassen <mailinglists@lucassen.org> writes:
> 
> > On Wed, 25 Nov 2020 10:52:57 +0100
> > Cecil Westerhof <Cecil@decebal.nl> 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
> 
> 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.

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).

-- 
To the thief who stole my anti-depressants: I hope you're happy

  -- seen somewhere on the Internet on a photo of a billboard


Reply to: