Cursus Raku / Objecten, in- en uitvoer en excepties / Invoer en uitvoer / Externe programma’s uitvoeren 🆕

run en shell

Er zijn twee manieren om een extern programma te starten. De functie run neemt het commando en zijn argumenten als afzonderlijke waarden en draait het programma rechtstreeks, zonder een shell erbij te betrekken:

run 'echo', 'hello';

Dit draait het programma echo met het enkele argument hello, wat hello afdrukt. Omdat de argumenten apart meegegeven worden, bestaat er geen risico dat de shell spaties of bijzondere tekens verkeerd interpreteert — run is de veilige standaardkeuze.

De functie shell geeft in plaats daarvan één enkele string aan de systeemshell, die hem interpreteert. Zo kun je shellmogelijkheden als pipes en omleiding gebruiken:

shell 'echo hello | tr a-z A-Z';

Hier draait de shell echo, sluist de uitvoer door tr en drukt HELLO af. Het gemak komt met een waarschuwing: omdat de shell de string ontleedt, is een shell-commando opbouwen uit onbetrouwbare invoer gevaarlijk. Geef de voorkeur aan run tenzij je specifiek shellmogelijkheden nodig hebt.

Beide geven een Proc-object terug dat beschrijft hoe het programma geëindigd is. Standaard deelt het gestarte programma de uitvoer van jouw programma, dus wat het afdrukt verschijnt op het scherm. Om die uitvoer in plaats daarvan op te vangen, vraag je erom — het onderwerp van het volgende onderdeel.

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Externe programma’s uitvoeren 🆕   |   Quiz — Programma’s uitvoeren


💪 Of ga direct naar de oefeningen in deze sectie.