delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/08/12/07:07:02

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:date:message-id:subject:from:to
:content-type:content-transfer-encoding; q=dns; s=default; b=I2s
J1weSDoz3wGYMIbxOjoQovlgxoGgwvXNfa+zZBgqKPiUFQRojCQpIJxFjLZh2Zfu
w0tTpyL6gwl3xoUcB+QEXpwbEmM+CrI4RA0lBEGwevzIF8f9p2ComFja7pPSkD9z
k0owZUBPtIAtOjKDLNAH23xuSeFVYvnrxsbKsMk8=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:date:message-id:subject:from:to
:content-type:content-transfer-encoding; s=default; bh=7sleWpjd9
puZkwWJ94tXW84q8hI=; b=v/T8gPIB6jw+z3ybkbncaXgU81I4wmilW5pwPs7/H
sruES6CRREkmSYhZn7edyGU36MTQzZ3vnbpbAs8hkCIhuQv2LaFGqtiMSfdTnUwA
bY9dURIZeTPsTwkrU/cqow4fX/l4D3YZVHFVD6WSyeMfzhQTHV7gCoGyOwvLfEpO
Gc=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
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
X-Spam-SWARE-Status: No, score=3.2 required=5.0 tests=AWL,BAYES_05,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_HOSTKARMA_YE,SPF_PASS autolearn=ham version=3.3.2
MIME-Version: 1.0
X-Received: by 10.68.164.1 with SMTP id ym1mr13220799pbb.33.1376305602718; Mon, 12 Aug 2013 04:06:42 -0700 (PDT)
Date: Mon, 12 Aug 2013 21:06:42 +1000
Message-ID: <CA+t=3-91S0PSp3nYZgrNg9ymzx+9gB=HSTvT6EZznZX2Q=Jrgg@mail.gmail.com>
Subject: bash ignoring set -f on windows
From: Craig Ryan <cryan DOT dublin AT gmail DOT com>
To: cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id r7CB6vfZ016897

The cygwin  bash is ignoring noglob  on windows 7  and XP. Cygwin
details: CYGWIN_NT-6.1 1.7.17(0.262/5/3) 2012-10-19 14:39

To illustrate,  here is a  script which calls a  java application
which I expect to have wildcards passed through as-is to the java
main String[ ]args. Source to both as follows.

----------------------------
#!/bin/bash
set -f

ARGS=$@
ARGSQ="$@"

# Try both quoted/unquoted ARGS
echo unquoted call to TestApp
$JAVA_HOME/bin/java TestApp $ARGS

echo quoted call to TestApp
$JAVA_HOME/bin/java TestApp $ARGSQ

-----------------------------
The java app is simply:

public class TestApp {
   public static void main(String[] args) {
       if (args.length < 1) {
          System.out.println("WRONG!! NO ARGS AT ALL - should be '*'");
          return;
       }
       if (args[0].equals("*")) {
          System.out.println("GOT '*'!!");
       } else {
          System.out.println("WRONG!! got '" + args[0] + "' - should be '*'");
       }
   }
}

From a cygwin  terminal, cd to the directory  containing the java
source and script. Compile the app and run as follows


$ javac TestApp.java
$ ./bash.sh ‘*’

That’s asterix in single quotes. I expect to see

GOT '*'!!

But I get

WRONG!! got 'bash.sh’ – should be ‘*’

The  ‘set –f’  in the  script is  ignored and  therefore wildcard
expansion is  enabled for the  java invocation. If I  comment out
‘set –f’ the result is the same.

If I run the same test on  a Mac the result is that with ‘set –f’
uncommented no wildcard expansion occurs and with ‘set –f’ active
expansion does occur as expected.

I am shipping a similar script  with my open source app so I need
to instruct users the easiest way to fix this just for cygwin.

Is  this  a  known  problem?  Can you  please  outline  what  the
issue/bug/limitation is, and  the least impact fix a  user can be
expected to cope with please?

The following isn't reasonable to expect from users:

-  Full scale cygwin version upgrades (a few file updates are OK)
-  Any requirement to build any cygwin or other software from source
-  Having to set a global or environment setting which affects
software other than my app

I can live with workarounds  within my own script (bash.sh above)
so long as it works in non-cygwin shells.

I’d really appreciate help on this.

thanks,
Craig

--
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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019