cat - test.d <<< "--eval=" | xargs -0 rdmd

I've only tried this on Linux.

As a person who's still only half-way a Linux guy, I have to ask: What
the hell is going on in that command?

The minus on the cat command line means standard input and

somecommand <<< "somestring"

Sends "somestring" to the standard input of somecommand. So the first part here outputs the contents of test.d with --eval= prepended. That's what xargs get as a standard input. Xargs then calls rdmd with that string as a command line argument. The -0 flag tells xargs to treat the input as a bunch of zero separated strings and to treat backslashes and double quotes the same as other characters (the default is to treat newlines and spaces as separators and to use quotes and backslashes to prevent spliting strings on newlines and spaces). I did it that way to avoid issues with escaping characters.

I understand bits and pieces of it, but my mind's having a hard time
parsing it. Can any of you unix gurus help me out?

I'm hardly a unix guru, I've been using linux for less than two years. I guess it's not hard to write hard to read bash commands :D

Reply via email to