gpt4 book ai didi

raku - 如何存储 run 或 shell 返回的值?

转载 作者:行者123 更新时间:2023-12-03 18:28:49 26 4
gpt4 key购买 nike

假设我有这个脚本:

# prog.p6
my $info = run "uname";

当我跑 prog.p6 ,我得到:
$ perl6 prog.p6
Linux

有没有办法存储返回值的字符串化版本并防止它输出到终端?

已经有 similar question但它没有提供具体的答案。

最佳答案

您需要启用 stdout 管道,否则默认为 $*OUT , 通过设置 :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 );

关于raku - 如何存储 run 或 shell 返回的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53983604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com