| delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| 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 |
| To: | cygwin AT cygwin DOT com |
| From: | Chuck <skilover AT softhome DOT net> |
| Subject: | Re: Piping output from sqlplus |
| Date: | Thu, 16 Dec 2004 15:55:05 -0500 |
| Lines: | 69 |
| Message-ID: | <cpssnc$8il$1@sea.gmane.org> |
| References: | <cpsr6t$45c$1 AT sea DOT gmane DOT org> <20041216204005 DOT GA26201 AT trixie DOT casa DOT cgf DOT cx> |
| Mime-Version: | 1.0 |
| X-Complaints-To: | usenet AT sea DOT gmane DOT org |
| X-Gmane-NNTP-Posting-Host: | f12d06i01.advancemags.com |
| User-Agent: | Mozilla Thunderbird 1.0 (Windows/20041206) |
| In-Reply-To: | <20041216204005.GA26201@trixie.casa.cgf.cx> |
| X-IsSubscribed: | yes |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Christopher Faylor wrote: | On Thu, Dec 16, 2004 at 03:29:16PM -0500, Chuck wrote: | |>I'm having a strange problem reading the output from sqlplus in Cygwin. |>Sqlplus is a windows command line program used to access oracle |>databases. My command looks something like this... |> |>sqlplus -s <<! | read line |>user/password AT database |>set pagesize 0 linesize 200 feedback off tab off |>select col1||chr(9)||col2 | |>from table; | |>! |> |>This should output one line to stdout with the two values separated by a |>tab character. The read command should read it into the variable $line. |>On my Solaris system it works perfectly. In Cygwin, $line is empty. | | | Just to demonstrate what you're seeing without the sqlplus requirement: | | bash$ echo hello | read line | bash$ echo $line | | bash$ | | The reason for the behavior is apparently that when you use read in a | pipe like this bash and ash fork a separate process so the variable only | exists very briefly in that process and `line' is never defined in the | main process. | | zsh does what you'd expect, so if you can use zsh instead of bash, that | would be a solution. Otherwise, you probably will have to experiment | with setting IFS and using either $(sqlplus) or `sqlplus` . | | cgf | Actually I'm using ksh. $ echo hello | read LINE $ echo $LINE $ Looks like you said. I know this is not the expectd behaviour for ksh though. On Solaris ksh ... Solaris$ echo hello | read LINE Solaris$ echo $LINE hello Solaris$ Why would ksh behave differently under Cygwin than under Solaris? -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFBwfYpzIf+rZpn0oQRAtnYAJ9jBdGzER29YzWnMOmREeQJv+fasQCdGFQc jRPqneau2f7PFhDXtwKGsn4= =bY4I -----END PGP SIGNATURE----- -- 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 |