Subject: Re: sqlplus and end-of-line problem in shell script code
From: Thomas Porschberg <[email-masked]>
To: mwoehlke <[email-masked]>
Cc: [email-masked]
Date: Fri, 29 Sep 2006 18:06:34 +0200

Am Fri, 29 Sep 2006 10:08:04 -0500
schrieb mwoehlke <[email-masked]>:

> 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.

-- 

--
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/