Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <19990505162018.21026.rocketmail@web117.yahoomail.com> Date: Wed, 5 May 1999 09:20:18 -0700 (PDT) From: Earnie Boyd Reply-To: earnie_boyd AT yahoo DOT com Subject: Re: Cygwin compatibility Questions To: flawlor AT us DOT ibm DOT com, cygwin AT sourceware DOT cygnus DOT com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii --- flawlor AT us DOT ibm DOT com wrote: > > > I have some scripts that need to run under many shells and tried them under > Cygwin. > I ran into a couple of problems. > > 1) The scripts launch a task to run some DB2 commands (db2cmd db2 ...). > Since these run asynchronously, the scripts monitor the db2 process > (db2sysc*) > to determine when it is done. Under Cygwin, the ps command doesn't seem to > show most processes, even those I launch. What do I need to do to be able to > see them? The cygwin ps command only maintains processes started by the cygwin product. The cygwin product has an internal table of it's processes and cannot map the processes started by non-cygwin products. > > 2) The scripts need to cd to other directories (on other disks) during > operation. > The general technique used is basically: > > oldDir=`pwd` > cd > ... > cd $oldDir > > In Cygwin, the paths don't seem to have an drive letters, so when the target > is > a different drive, the cd fails. I found that I can use cygpath, e.g. > > oldDir=`pwd` > if [ "$OSTYPE" = "cygwin32" ]; then > oldDir=`cygpath -w $oldDir` > fi > ... > cd $oldDir > Why are you doing this? Why do you need the cygpath portion? -8<- > 3) Similar to the above, the scripts need to invoke other scripts, commands, > etc. > on other paths: > > ${somepath}/command > > This has the same problem with the default paths as above when the > command is on a different drive. Using cygpath to convert the path > still doesn't work (I get 'not found"). I found that I need to convert the > '\'s to '/' to get it to work: > > thePath=`pwd` > thePath=`cygpath -w $thePath | tr \\\\\\\\ /` > ... > It sounds to me as if the pwd you're executing isn't the one supplyed by cygwin. Make sure that the cygwin/bin directory is first in the PATH list. > > A general comment. I've tried these scripts on numerous shells. > One of the critical elements of shells is their handling of Window's paths. > If my understanding, above, is correct, then Cygwin handling of paths I don't think that your understanding is correct. The Cygwin product handles paths rather smartly. You can do any of the following: cd c:/some/where/else cd c:\\some\\where\\else cd //c/some/where/else If C:\\ is mounted as / then you can cd /some/where/else If C:\\ is mounted as /c then you can cd /c/some/where/else If you don't understand what I mean by "mounted as" then you need to read the documentation. === "Earnie Boyd" CYGWIN RELATED HELP: DOCUMENTATION: DLLHELP: ARCHIVE SEARCH: OR _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com