[linux] exec first_choice || plan_b

Jelle Derksen jelle+nllgg op jellederksen.nl
Vr mei 15 13:07:22 CEST 2020


On Fri, May 15, 2020 at 11:36:15AM +0200, Geert Stappers wrote:
> Hoi,
> 
> Het plan is om te exprimenteren met een shell script
> dat eindigd met
> 
>   exec first_choice ||  plan_b
> 
> 
> Van
>   first_choice  ||  plan_b
> weet ik dat het robuust is.
> 
> Met een `exec` er voor, ben ik me daar niet zeker.
> 
> Wat is jullie ervaring met `exec` in een shell script?
> 
> 
> Groeten
> Geert Stappers
> 
> P.S.
> 
> Het script eindigd momenteel met
> 
>   if  [ condition ] ; then
>      exec first_choice
>   fi
> 
> -- 
> Silence is hard to parse

Hallo Geert,

first_choice || plan_b

Het eerste voorbeeld ziet er goed uit. Als first_choice faalt (exit niet 0),
voer dan plan_b uit.

exec first_choice || plan_b

In het tweede voorbeeld zorgt de exec voor een ander effect. De exec vervangt
de shell zijn huidige proces met first_choice. First_choice krijgt de logische
or constructie || niet te zien. Als first_choice faalt, zal plan_b niet
uitgevoerd worden.

Je kunt dit ook zelf testen. Probeer het volgende commando maar eens.

exec false || plan_b

Of, als plan_b niet direct kan.

exec false || echo 'demo'

Groeten,

Jelle Derksen


Meer informatie over de Linux maillijst