This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: sqlplus and end-of-line problem in shell script code


On Fri, 29 Sep 2006, Thomas Porschberg wrote:

Check your mounts.  See if you have /tmp mounted in textmode.
Also, check if the filesystem you are running the script from is mounted
in textmode or not and weither the CYGWIN env var has textmode on binmode
set.  Try playing around with textmode & binmode.  Read the cygwin doc
concerning text translation:

http://cygwin.com/cygwin-ug-net/highlights.html#ov-hi-textvsbinary
http://cygwin.com/cygwin-ug-net/using-textbinary.html
http://cygwin.com/cygwin-ug-net/using-cygwinenv.html

Am Fri, 29 Sep 2006 10:08:04 -0500
schrieb mwoehlke <mwoehlke@tibco.com>:

Thomas Porschberg wrote:
Hi,
I want to use our shell script collection which includes sqlplus
calls under Cygwin.
I have the following problem with this code snippet:

#!/bin/bash

RESULT=`sqlplus -s myuser/mypasswd@MYDB <<EOF
SET FEEDBACK OFF;
SET PAGESIZE 0;
SELECT '42' FROM DUAL;
EOF`

if test "$RESULT" = "42" ; then
echo "Result is 42..."
else
echo "Result is not 42 ??!"
fi

When I run the script on UNIX it prints "Result is 42..." which is
OK. When I run the script under Cygwin the result is: "Result is
not 42??!" The reason is that under Cygwin the result of the SELECT
are 3 characters "42" "CR" "LF" (instead of 2 characters "42" and
"LF"). I did not found a way to convince sqlplus to produce
UNIX-EOLs on Windows. Does anyone know how to solve the problem
without changing the code itself ?

Um, if by "the code" you meant the above script, then no. Otherwise it looks like you could drop a '| d2u' (or '| sed s/\r//g') in there. I forget though if you want:

RESULT=`app | d2u << EOF
input
EOF`

or

RESULT=`app << EOF
input
EOF | d2u`

...or possibly neither. At any rate, that's a question of shell
syntax; get that right and it seems it should work.

I think the basic question is:
When a Windows program called from cygwin writes a CR-LF as EOL
(and I think sqlplus is simply doing that) is it possible via
cygwin to remove the CR before assigning the value to a shell
variable.
Because Dr. Volker Zell reported about an successful run of
the script it should possible.

Regards,
Thomas P.



-- Peter A. Castro <doctor@fruitbat.org> or <Peter.Castro@oracle.com> "Cats are just autistic Dogs" -- Dr. Tony Attwood

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]