perl6 – 如何存储run或shell返回的值?
发布时间:2020-12-15 23:28:06 所属栏目:大数据 来源:网络整理
导读:假设我有这个脚本: # prog.p6my $info = run "uname"; 当我运行prog.p6时,我得到: $perl6 prog.p6Linux 有没有办法存储返回值的字符串版本并阻止它输出到终端? 已经有similar question但它没有提供具体的答案. 解决方法 您需要通过设置:out来启用stdout
假设我有这个脚本:
# prog.p6 my $info = run "uname"; 当我运行prog.p6时,我得到: $perl6 prog.p6 Linux 有没有办法存储返回值的字符串版本并阻止它输出到终端? 已经有similar question但它没有提供具体的答案. 解决方法
您需要通过设置:out来启用stdout管道,否则默认为$* OUT.所以:
my $proc = run("uname",:out); my $stdout = $proc.out; say $stdout.slurp; $stdout.close; 可以缩短为: my $proc = run("uname",:out); say $proc.out.slurp(:close); 如果你想分别捕获stderr上的输出而不是stdout,你可以这样做: my $proc = run("uname",:out,:err); say "[stdout] " ~ $proc.out.slurp(:close); say "[stderr] " ~ $proc.err.slurp(:close); 或者如果你想将stdout和stderr捕获到一个管道,那么: my $proc = run("uname",:merge); say "[stdout and stderr] " ~ $proc.out.slurp(:close); 最后,如果您不想捕获输出并且不希望它输出到终端: my $proc = run("uname",:!out,:!err); exit( $proc.exitcode ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |