'Unable to use `run` routine on complex bash command
Got this command: cd /some/dir; /usr/local/bin/git log --diff-filter=A --follow --format=%aI -- /some/dir/file | tail -1
I want to get the output from it.
Tried this:
my $proc2 = run 'cd', $dirname, ';', '/usr/local/bin/git', 'log', '--diff-filter=A', '--follow', '--format=%aI', '--', $output_file, '|', 'tail', '-1', :out, :err;
Nothing output.
Tried this:
my $proc2 = run </usr/local/bin/git -C>, $dirname, <log --diff-filter=A --follow --format=%aI -->, $output_file, <| tail -1>, :out, :err;
Git throws an error:
fatal: --follow requires exactly one pathspec
The same git command runs fine when run directly from the command line.
I've confirmed both $dirname
and $output_file
are correct.
git log --help
didn't shed any light on this for me. Command runs fine straight from command line.
UPDATE: So if I take off the | tail -1
bit, I get output from the command in raku (a date). I also discovered if I take the pipe out when running on the command line, the output gets piped into more
. I'm not knowledgeable enough about bash and how it might interact with raku's run
command to know for sure what's going on.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|