Cursus Raku / Obiecta, introitus et exitus, et exceptiones / Introitus et exitus / Programmata externa exsequi 🆕
Obiectum Proc
Omnis vocatio run vel shell obiectum
Proc reddit — parvam tabulam quae describit quod programma
cucurrerit et quomodo finierit. Argumenta superiora tractabulo
.out eius ad exitum legendum usa sunt; Proc
plus quam illud fert.
Pars utilissima est codex exeundi. Programma ei qui
illud lanciavit indicat utrum successerit per parvum numerum integrum:
0 successum significat, et quilibet alius numerus est codex
defectus a programmate ipso electus. .exitcode illum
numerum tibi dat:
my $proc = run 'sh', '-c', 'exit 3';
say $proc.exitcode; # 3Ad quaestionem solitam ita-an-non — operatusne est? —
Proc simpliciter verum est cum codex exeundi est
0 et falsum aliter, itaque illud directe probare potes:
my $proc = run 'ls', '/', :out;
$proc.out.slurp(:close);
say $proc ?? 'ok' !! 'failed'; # okProc etiam imperatum quod lanciavit meminit, in
.command:
my $proc = run 'echo', 'hi', :out;
$proc.out.slurp(:close);
say $proc.command; # (echo hi)Unum cavendum: si imperatum deficit et Proc redditum
simpliciter neglegis, Raku exceptionem excitat potius
quam defectum inobservatum transire sinat:
run 'sh', '-c', 'exit 1';
# moritur: The spawned command 'sh' exited unsuccessfully (exit code: 1, signal: 0)Quia exitus non nullus plerumque significat aliquid male cecidisse,
Proc deficiens quod abicitur iacit cum extra
circumscriptionem exit. Causa est effectum abicere, non codicem
exeundi neglegere: Proc in variabili simpliciter servare
satis est ut exceptionem vites, etiamsi illud numquam iterum
inspicis.
my $proc = run 'sh', '-c', 'exit 1'; # nullus error, quamquam defecit
# …et $proc numquam iterum adhibeturItaque si exspectas imperatum deficere posse,
Proc eius serva et deinde .exitcode inspice
(vel illud ut Booleanam proba) quotiens scire vis quid acciderit.
Exercitatio
Sequuntur 1 quiz de contentis huius argumenti.
Navigatio cursus
← Exitum capere | Quiz — Obiectum Proc →
💪 Vel recta ad exercitationes huius
sectionis i.