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: List-Subscribe: List-Archive: List-Post: List-Help: , 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: Subject: bash ignoring set -f on windows From: Craig Ryan To: cygwin AT cygwin DOT com Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit 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