For instance piping though commands works fine until one character sequence is interpreted as EOF. The fun part is it will work most of the time, and when it fails nobody will understand why (“we didn’t touch anything”), and rewriting the thing will be a political nightmare (“it was working before and was only 3 lines, why you need so much time to redo it ?”)
I think most people (me included) don’t do enough shell programming to really know the trade-off of the one-liner vs doing it in groovy, so the latter becomes the safer option (rightly so IMO)
I know this is just an example, but how would that happen?
% printf '\x04\necho EOT is not EOF in a pipe.\n' | bash
bash: line 1: $'\004': command not found
EOT is not EOF in a pipe.
%
Pipes do not contain line disciplines and thus do not do special character processing.As much as I might like Java, this surely did not make any sense, but when people want to pay you for doing it, oh well.