delorie.com/archives/browse.cgi | search |
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/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |