http://www.perlmonks.org?node_id=586961


in reply to (OT) Fixing Line Endings

If the only way to get scripts onto the box is ftp, then you could look for a "post-upload-hook" feature in your ftpd, or hack one in if it's open source. Then you could try some heuristics (does the file look like text, does it have a file extension suggesting it is a script, etc) and do the CRLF->LF conversion if the heuristics recommend it.

Actually - why not a kernel hack? Just map "foo\r" -> "foo" in the exec codepath. You'll lose the ability to run scripts with an interpreter of such a name, but that seems a small loss.

<rummages> There's some string manipulation in linux/fs/binfmt_script.c to find and launch the shebang. Just add a:

if(interp(strlen(interp)-1) == '\r') { interp(strlen(interp)-1) = '\0'; }
just after the strcpy (interp, i_name); in the load_script function and Bob's your Auntie's live-in lover. Possibly.