This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: syntax for Cygwin bash invoking Win apps


On 09/08/2009 11:30 PM, Ziser, Jesse wrote:
Hello list,

When I type a command in bash to invoke a Windows application (like
cmd.exe, for example), I can't seem to find a pattern in the Windows command
line that actually gets executed. Ordinary bash syntax does not seem to
apply in general when the command is a Windows app, but rather, sometimes
special characters are interpreted in a bash-like way, and sometimes not.
So, I'm wondering what determines whether a quote mark or something gets
interpreted or passed on.

Here are some examples:

$ cmd /c echo "/?"
Displays messages, or turns command-echoing on or off.

   ECHO [ON | OFF]
   ECHO [message]

Type ECHO without parameters to display the current echo setting.

# OK, so I'm getting the Windows echo, not the bash echo.  Good.
# Moving on...
$ cmd /c echo abc
abc

$ cmd /c echo "abc"
abc

$ cmd /c echo "\"abc\""
"\"abc\""

# Wahhh?!

Anyone who knows the explanation would make me very grateful. I've tried
this with other Windows apps too, and the same weirdness seems to occur.

All of the above is consistent with bash shell quoting. It's the shell that does
the interpreting in the Unix/Linux world and that's what you're seeing here.


On a related note, I've noticed what appears to be an automatic sort of
half-bash invocation (but not quite?) or something when I run Cygwin
commands from cmd.exe. For example,

c:\cygwin\bin\echo hi
hi

c:\cygwin\bin\echo "hi"
hi

c:\cygwin\bin\echo "\"hi\""
"hi"

c:\cygwin\bin\echo *
myfile myotherfile yetanotherfile ...

And yet...

c:\cygwin\bin\echo $PATH
$PATH

What the heck is going on? Are there any rules here at all? Sorry if I'm
missing something dumb. And sorry for apologizing for it. And......

In this case, the Cygwin DLL intercedes and handles quoting for the Cygwin app that
you invoked (echo). But it only does quoting. You're mixing the notion of quoting with
environment handling. They are two different things.



-- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 216 Dalton Rd. (508) 893-9889 - FAX Holliston, MA 01746

_____________________________________________________________________

A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]