Read not honouring "-r"?
Wed Sep 20 23:18:00 GMT 2006
Gerald, you are gold!
For some reason I expected to see ^M's in the file if it was DOS format.
Opening filesystems.cfg in Ultraedit failed to prompt with "Do you want
to convert filesystems.cfg to DOS format?", so it was DEFINITELY in DOS
format (as if there is any doubt).
Consequently running dos2unix on filesystems.cfg fixed it straight away.
The other responses are very interesting too.
Also - using "cat filesystems.cfg | while read" isn't an option because
we need variables set inside the while loop to be visible outside it (oh
the joys of porting existing Solaris scripts).
Thanks everyone how made suggestions, etc. Interested to hear about
anything else related.
From: Williams, Gerald S (Jerry) [mailto:email@example.com]
Sent: Tuesday, 19 September 2006 11:24 PM
Subject: RE: Read not honouring "-r"?
Doug Irwin wrote:
> One would expect a "read -r fs t2 t3" to process this without
> attempting to expand slashes. But I can't seem to get this bit
> working... And I can't seem to find any doco on doing that in Cygwin.
> I've attached the files I am testing with in the hope that someone can
> help me work this out.
> No doubt I have missed something rather obvious.
"-r" has nothing to do with it: CR/LF line endings are the culprit.
This seems to be particularly tied to ksh, and specifically when you use
"<" to redirect a file. If you simply pipe the output of grep to the
while loop, it works. Interestingly, sh, bash, and zsh all give the
behavior you were expecting.
So for the short term, run d2u on filesystems.cfg. If you plan to
continue using ksh, you may want to follow up and try to understand the
discrepancy--there may be an option that allows you to get the behavior
you want (and if not, it may be worth having KSH's behavior changed to
be more consistent with other shells, but that's something for the
maintainer and/or upstream KSH support to decide).
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
More information about the Cygwin