[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to find out the CVSROOT and location in the repository of a w or

From: Mike Ayers
Subject: Re: How to find out the CVSROOT and location in the repository of a w orking directory
Date: Mon, 24 Jun 2002 14:23:56 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.0) Gecko/20020530

Reinstein, Shlomo wrote:
Thanks for the detailed reply!
Before this sample script, I actually thought that your idea was bad because
every type of shell or operating system has its own way of redirecting the
standard error -- but you proved me wrong (or is it Perl that always
launches the same type of shell when it runs backticks, and this is why it
works?). I really didn't know that this error redirection is uniform in all
shells and operating systems. (At least those we use, Linux and Windows with
several shells in each.) I was surprised to see that this worked on both
"cmd" on Windows, and on "tcsh" and "bash" on Linux.

I don't believe that it will work on tcsh, or any csh for that matter, since csh uses a different syntax to redirect stderr. However, perl uses bourne shells by default for backtick evaluation, so the perl script will catch the stderr of its evaluated expression, even when invoked from a csh. Such redirection (or anything for that matter) is not consistent from shell to shell. Perl explicitly looks for a standard bourne shell (barring that, a shell that supports standard bourne behavior such as bash) when installing in an attempt to get reasonably consistent behavior. However, this becomes problematic on systems like NT. ActivePerl invokes CMD.EXE, whereas the perl.exe installed with Cygwin uses ash (a vanilla bourne shell) - these two behave quite differently. However, if you limit the use of backtiks in Perl to output capture as shown, you will find your scripts pretty darn portable, as CMD.EXE supports bourne style command redirection.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]