Corso di Raku / Oggetti, input/output ed eccezioni / Input e output / Eseguire programmi esterni 🆕
L’ambiente
Ogni programma viene avviato con un insieme di variabili
d’ambiente — valori con un nome come HOME,
PATH o USER che il sistema operativo fornisce.
In Raku sono disponibili nell’hash dinamico %*ENV:
say %*ENV<HOME>; # the home directory, e.g. /home/annaLeggi una variabile d’ambiente indicizzando %*ENV con il
suo nome. Poiché è un hash ordinario, puoi anche controllare se una
variabile è impostata, o cambiarla per i programmi che lanci:
%*ENV<GREETING> = 'Hello';
say %*ENV<GREETING>; # HelloImpostare una chiave in %*ENV la aggiunge all’ambiente
che qualunque programma poi avviato con run o
shell erediterà, ed è così che passi la configurazione a un
programma figlio:
%*ENV<GREETING> = 'Hello';
my $proc = run 'sh', '-c', 'echo $GREETING', :out;
say $proc.out.slurp(:close).chomp; # HelloLa variabile viene impostata nell’ambiente del tuo programma
prima che il figlio venga lanciato, quindi la shell che
run avvia ha già GREETING nel proprio ambiente
e può restituirlo con echo. Ogni variabile che imposti in questo modo
raggiunge ogni programma che avvii in seguito.
Il twigil * ti dice che %*ENV è una
variabile dinamica, come $*OUT della parte su input e
output. Alcune altre variabili con l’asterisco descrivono il mondo del
programma in esecuzione: @*ARGS contiene gli argomenti
della riga di comando e $*PROGRAM-NAME è il nome dello
script stesso. Insieme permettono a un programma di capire il contesto
in cui è stato lanciato.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Quiz — L’oggetto Proc | Quiz — L’ambiente →
💪 Oppure vai direttamente agli esercizi di questa
sezione.