http://qs321.pair.com?node_id=621665


in reply to Re^2: [Good news] here docs portability!
in thread [Good news] here docs portability!

Better make that /bin/echo...

What was I thinking, qx// is executed with /bin/sh regardless of user's favorite shell.

Replies are listed 'Best First'.
Re^4: [Good news] here docs portability!
by ysth (Canon) on Jun 17, 2007 at 07:33 UTC
    No, you are correct; the shell's `` will prefer the builtin echo, so what I gave won't work under some shells without explicitly asking for the coreutils /bin/echo. (Wow, the POSIX standard for echo is really dumb.)
      As much as I like being right by accident, don't even old Bourne shells honor -e? In my original comment, I was thinking of c shells, which do not.

      But instead of relying on the system's /bin/echo, which who knows, might be broken in rusty old systems, why not use Perl for this command (since we know the user has it...)

        Broken? Per POSIX, -e is not a special flag, and should be output. With the XSI extensions, you are supposed to get \r -> CR whether you want it or not. Without XSI, the output when there are backslashes is undefined.

        So perl is the way to go.