delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/09/29/12:07:00

X-Spam-Check-By: sourceware.org
Date: Fri, 29 Sep 2006 18:06:34 +0200
From: Thomas Porschberg <thomas DOT porschberg AT osp-dd DOT de>
To: mwoehlke <mwoehlke AT tibco DOT com>
Cc: cygwin AT cygwin DOT com
Subject: Re: sqlplus and end-of-line problem in shell script code
Message-ID: <20060929180634.53341dd9@porschberg.osp-dd.de>
In-Reply-To: <efjcsl$iii$1@sea.gmane.org>
References: <20060929102628 DOT 49430820 AT porschberg DOT osp-dd DOT de> <efjcsl$iii$1 AT sea DOT gmane DOT org>
X-Mailer: Sylpheed-Claws 2.1.0 (GTK+ 2.8.3; i686-suse-linux-gnu)
Mime-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Am Fri, 29 Sep 2006 10:08:04 -0500
schrieb mwoehlke <mwoehlke AT tibco DOT 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 AT 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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019