Ik heb twee shell scripts, a.sh
en b.sh
.
Hoe kan ik b.sh
aanroepen vanuit het shell script a.sh
?
Er zijn een paar verschillende manieren waarop je dit kunt doen:
Maak het andere script uitvoerbaar, voeg de #!/bin/bash
regel bovenaan toe, en het pad waar het bestand staat aan de $PATH omgevingsvariabele. Dan kun je het als een normaal commando aanroepen;
Of roep het aan met het source
commando (alias is .
) zoals dit: source /path/to/script
;
Of gebruik het bash
commando om het uit te voeren: /bin/bash /path/to/script
;
De eerste en derde methode voeren het script uit als een ander proces, dus variabelen en functies in het andere script zullen niet toegankelijk zijn.
De tweede methode voert het script uit in het proces van het eerste script, en haalt variabelen en functies van het andere script binnen zodat ze bruikbaar zijn vanuit het aanroepende script.
In de tweede methode, als je exit
gebruikt in het tweede script, zal het het eerste script ook afsluiten. Wat niet zal gebeuren in de eerste en derde methode.