X-Spam-Check-By: sourceware.org Date: Fri, 29 Sep 2006 18:06:34 +0200 From: Thomas Porschberg To: mwoehlke 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: References: <20060929102628 DOT 49430820 AT porschberg DOT osp-dd DOT de> X-Mailer: Sylpheed-Claws 2.1.0 (GTK+ 2.8.3; i686-suse-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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 : > 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 < > 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/