Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #13769

Re: Double substitution issue

Path csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.alt.net!nntp.club.cc.cmu.edu!micro-heart-of-gold.mit.edu!bloom-beacon.mit.edu!bloom-beacon.mit.edu!171.64.64.130.MISMATCH!usenet.stanford.edu!not-for-mail
From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: Double substitution issue
Date Wed, 28 Feb 2018 10:03:11 -0500
Lines 47
Approved bug-bash@gnu.org
Message-ID <mailman.9863.1519830209.27995.bug-bash@gnu.org> (permalink)
References <CAFwrLX4FoKEm8pAGgrT+SkeUOk=zKxA5-h2KuoVsfwJSMz+kew@mail.gmail.com>
Reply-To chet.ramey@case.edu
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 7bit
X-Trace usenet.stanford.edu 1519830209 23096 208.118.235.17 (28 Feb 2018 15:03:29 GMT)
X-Complaints-To action@cs.stanford.edu
Cc chet.ramey@case.edu
To William Entriken <fulldecent@gmail.com>, bug-bash@gnu.org
Envelope-to bug-bash@gnu.org
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
In-Reply-To <CAFwrLX4FoKEm8pAGgrT+SkeUOk=zKxA5-h2KuoVsfwJSMz+kew@mail.gmail.com>
Content-Language en-US
X-Junkmail-Status score=7/60, host=mpv2-2015.case.edu
X-Junkmail-PrAS-Raw score=7/60, refid=2.7.2:2018.2.28.140016:17:7.944, ip=, rules=__HAS_REPLYTO, __HAS_CC_HDR, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __SUBJ_ALPHA_END, __TO_MALFORMED_2, __TO_NAME, __TO_NAME_DIFF_FROM_ACC, __REFERENCES, __HAS_FROM, FROM_EDU_TLD, __HAS_MSGID, __SANE_MSGID, DATE_TZ_NA, __USER_AGENT, __MOZILLA_USER_AGENT, __MIME_VERSION, __IN_REP_TO, __CT, __CT_TEXT_PLAIN, __CTE, __REPLYTO_SAMEAS_FROM_ADDY, __REPLYTO_SAMEAS_FROM_ACC, __FROM_DOMAIN_IN_ANY_CC1, __FROM_DOMAIN_IN_ANY_CC2, __REPLYTO_SAMEAS_FROM_DOMAIN, __ANY_URI, __URI_WITH_PATH, __URI_NO_WWW, __CP_URI_IN_BODY, __FRAUD_MONEY_CURRENCY_DOLLAR, __SUBJ_ALPHA_NEGATE, __URI_IN_BODY, __URI_NOT_IMG, __FORWARDED_MSG, __NO_HTML_TAG_RAW, BODYTEXTP_SIZE_3000_LESS, BODY_SIZE_1200_1299, __MIME_TEXT_P1, __MIME_TEXT_ONLY, __URI_NS, HTML_00_01, HTML_00_10, __FRAUD_MONEY_CURRENCY, BODY_SIZE_5000_LESS, IN_REP_TO, MSG_THREAD, __FROM_DOMAIN_IN_RCPT, __TO_REAL_NAMES, [TRUNCATED], so=2010-03-03 19:42:08, dmn=2016-08-03-0138
X-detected-operating-system by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] [fuzzy]
X-Received-From 129.22.103.227
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <http://lists.gnu.org/archive/html/bug-bash/>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
Xref csiph.com gnu.bash.bug:13769

Show key headers only | View raw


On 2/28/18 3:25 AM, William Entriken wrote:
> This behavior is different in zsh and bash, and maybe bash behavior is a
> bug.
> 
> # Test case
> 
> touch 1 2 3
> cat > script.sh <<EOL
> from=1
> to=3
> ls {$from..$to}
> EOL
> chmod a+x script.sh
> 
> bash ./script.sh
> 
> zsh ./script.sh
> 
> # Expected
> 
> Both list files 1, 2, 3
> 
> # Actual
> 
> zsh passes.
> 
> Bash fails the chained substitution with:
> 
> ls: {1..3}: No such file or directory

This is how bash works, how it's always worked, and how it's documented to
work:

"Brace expansion is performed before any other expansions, and any char-
 acters special to other expansions are preserved in the result.  It  is
 strictly  textual.  Bash does not apply any syntactic interpretation to
 the context of the expansion or the text between the braces."

So you have {$from..$to}, which is not a valid sequence expression because
$from and $to are not integers. Invalid brace expansions are left
unchanged. When the word undergoes parameter expansion, you get {1..3}.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: Double substitution issue Chet Ramey <chet.ramey@case.edu> - 2018-02-28 10:03 -0500

csiph-web