Am Fri, 29 Sep 2006 10:08:04 -0500 schrieb mwoehlke <[EMAIL PROTECTED]>:
> 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/[EMAIL PROTECTED] <<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/