【发布时间】:2017-11-13 18:28:05
【问题描述】:
我有一个需要管道输入的命令。例如,考虑著名的cat 命令:
$ echo Hello | cat
Hello
假设我在 Perl 6 程序中有一个字符串,我想通过管道传递给命令:
use v6;
my $input = 'Hello'; # This is the string I want to pipe to the command.
my $proc = run 'cat', :in($input);
这不起作用(我没有输出)。我可以解决这个问题
调用bash 和echo:
my $proc = run 'bash', '-c', "echo $input | cat";
但是有没有办法在不运行 bash 和 echo 的情况下做到这一点?
在 Perl5 中,我可以简单地执行 my $pid = open my $fh, '|-', 'cat'; 然后 print $fh $str。
【问题讨论】:
-
您实际上是在询问如何直接写入进程的标准输入。 (管道是外壳的一个特征)