Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ein- und Ausgabe / Externe Programme ausführen 🆕
Die Umgebung
Jedes Programm wird mit einem Satz von Umgebungsvariablen
gestartet — benannten Werten wie HOME, PATH
oder USER, die das Betriebssystem bereitstellt. In Raku
stehen sie in der dynamischen Hash %*ENV zur Verfügung:
say %*ENV<HOME>; # the home directory, e.g. /home/annaSie lesen eine Umgebungsvariable, indem Sie %*ENV mit
ihrem Namen indizieren. Da es eine gewöhnliche Hash ist, können Sie auch
prüfen, ob eine Variable gesetzt ist, oder sie für Programme ändern, die
Sie starten:
%*ENV<GREETING> = 'Hello';
say %*ENV<GREETING>; # HelloEinen Schlüssel in %*ENV zu setzen fügt ihn der Umgebung
hinzu, die jedes danach mit run oder shell
gestartete Programm erbt — so reichen Sie Konfiguration an ein
Kindprogramm weiter:
%*ENV<GREETING> = 'Hello';
my $proc = run 'sh', '-c', 'echo $GREETING', :out;
say $proc.out.slurp(:close).chomp; # HelloDie Variable wird in der Umgebung Ihres Programms gesetzt,
bevor das Kind gestartet wird, die von run
gestartete Shell hat GREETING also bereits in ihrer eigenen
Umgebung und kann es zurückgeben. Jede so gesetzte Variable erreicht
jedes Programm, das Sie danach starten.
Der Twigil * sagt Ihnen, dass %*ENV eine
dynamische Variable ist, wie $*OUT aus dem Teil über Ein-
und Ausgabe. Einige weitere Variablen mit Stern beschreiben die Welt des
laufenden Programms — @*ARGS enthält die
Befehlszeilenargumente, und $*PROGRAM-NAME ist der Name des
Skripts selbst. Zusammen erlauben sie einem Programm, den Zusammenhang
zu verstehen, in dem es gestartet wurde.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Quiz — Das Proc-Objekt | Quiz — Die Umgebung →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.