得到这个命令:cd /some/dir; /usr/local/bin/git log --diff-filter=A --follow --format=%aI -- /some/dir/file | tail -1
我想从中得到输出。
尝试过这个:
my $proc2 = run 'cd', $dirname, ';', '/usr/local/bin/git', 'log', '--diff-filter=A', '--follow', '--format=%aI', '--', $output_file, '|', 'tail', '-1', :out, :err;
没有任何输出。
尝试过这个:
my $proc2 = run </usr/local/bin/git -C>, $dirname, <log --diff-filter=A --follow --format=%aI -->, $output_file, <| tail -1>, :out, :err;
Git 抛出错误:
fatal: --follow requires exactly one pathspec
当直接从命令行运行时,相同的 git 命令运行良好。
我已经确认了两者$dirname
并且$output_file
都是正确的。
git log --help
没有为我阐明这一点。命令直接从命令行运行良好。
更新:所以如果我去掉这个| tail -1
位,我会从 raku(日期)中的命令中得到输出。我还发现,如果我在命令行上运行时取出管道,输出就会通过管道传输到more
. 我对 bash 以及它如何与 raku 的命令交互的了解不够,run
无法确定发生了什么。
CIA*_*ash 12
您需要为管道运行单独的过程:
\nmy $p = run \xc2\xabgit -C "$dirname" log --diff-filter=A --format=%aI\xc2\xbb, :out, :err; \nmy $p2 = run <tail -1>, :in($p.out), :out;\nput .out.slurp: :close with $p2;\n
Run Code Online (Sandbox Code Playgroud)\n在这种情况下你也不需要 tail,你可以这样做:
\nput .out.lines(:close).tail with $p\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
97 次 |
最近记录: |