Bash shell script issue

Eliot Moss moss@cs.umass.edu
Wed Sep 7 18:13:00 GMT 2016


On 9/7/2016 2:12 PM, wilson wrote:
 >
 >> On 2016-09-06 18:36, Kipton Moravec wrote: I am relatively new to shell scripts, but this works on
 >> linux and I do not know why it does not work for me in cygwin. ... What am I doing wrong or is
 >> this an error? Where do the carriage returns (^M) come from, and how do I get rid of them?
 >
 > The (^M -Control M) characters are displayed because Windows is stupid and didn't do the sensible
 > thing for End Of Line for plain text files. Linux/Unix uses a Carriage Return (CR) followed by a
 > Line Feed (LF) to do an EOL. A Google search for "Control M Character" will bring up a lot of web
 > sites dealing with explaining this.
 >
 >  You need to run "dos2unix" or "unix2dos" on your script to convert the EOL to the proper OS
 > formatting when transferring between real Linux/Unix machines and Windows machines. These utilities
 > are available in the Cygwin utilities download (look for it), but I'm not sure they are included in
 > the basic default packages.

Umm, Linux/Posix does NOT include ^M (CR) in line endings, only ^J (NL).  Older Apple
systems used ^M only, but newer ones have a Unix-like OS under the hood and are thus
more Posix-like.

Regards -- Eliot Moss

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list