Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #15174
| Path | csiph.com!goblin1!goblin.stu.neva.ru!usenet.stanford.edu!not-for-mail |
|---|---|
| From | astian <astian@e-nautia.com> |
| Newsgroups | gnu.bash.bug |
| Subject | backquote peculiarities (was: Re: Combination of "eval set -- ..." and $() command substitution is slow) |
| Date | Mon, 15 Jul 2019 22:19:00 +0000 |
| Lines | 49 |
| Approved | bug-bash@gnu.org |
| Message-ID | <mailman.1472.1563229198.2688.bug-bash@gnu.org> (permalink) |
| References | <bcd08f6c-1c13-0eb4-92b2-4e904b19a0ce@e-nautia.com> <8091.1563212947@jinx.noi.kre.to> <84005319-e232-8404-fe0b-471dafad381c@e-nautia.com> |
| 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 1563229199 3726 209.51.188.17 (15 Jul 2019 22:19:59 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| Cc | bug-bash@gnu.org |
| To | Robert Elz <kre@munnari.OZ.AU> |
| Envelope-to | bug-bash@gnu.org |
| DKIM-Signature | v=1; a=rsa-sha256; c=simple/simple; d=e-nautia.com; s=e-nautia; t=1563229191; bh=zRrCggWChul8hAgf0+vji44zEPxfnzKJPdE7sFTgqtE=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=uUvTOOOk8+PK8K+fcEhIYX07w2uGkT/ArHOftgM4j87evGQC73JsMDrWNrGVuU7ZM OHLhoxYfmX5zkWKnrHU9kSh1OWmnAKGfZeq80PFt1Wxn3wAdYTZTXnq/i42s2J53/v GbD1PiH7eaRr0yPNumW+jjgjJukLZynd+jw52oqU= |
| Authentication-Results | m1; dmarc=fail (p=none dis=none) header.from=e-nautia.com |
| DKIM-Signature | v=1; a=rsa-sha256; c=simple/simple; d=e-nautia.com; s=e-nautia; t=1563229191; bh=zRrCggWChul8hAgf0+vji44zEPxfnzKJPdE7sFTgqtE=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=uUvTOOOk8+PK8K+fcEhIYX07w2uGkT/ArHOftgM4j87evGQC73JsMDrWNrGVuU7ZM OHLhoxYfmX5zkWKnrHU9kSh1OWmnAKGfZeq80PFt1Wxn3wAdYTZTXnq/i42s2J53/v GbD1PiH7eaRr0yPNumW+jjgjJukLZynd+jw52oqU= |
| In-Reply-To | <8091.1563212947@jinx.noi.kre.to> |
| Content-Language | en-US |
| X-detected-operating-system | by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] |
| X-Received-From | 51.68.35.65 |
| X-BeenThere | bug-bash@gnu.org |
| X-Mailman-Version | 2.1.23 |
| 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 | <https://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> |
| X-Mailman-Original-Message-ID | <84005319-e232-8404-fe0b-471dafad381c@e-nautia.com> |
| X-Mailman-Original-References | <bcd08f6c-1c13-0eb4-92b2-4e904b19a0ce@e-nautia.com> <8091.1563212947@jinx.noi.kre.to> |
| Xref | csiph.com gnu.bash.bug:15174 |
Show key headers only | View raw
Robert Elz: > Date: Wed, 10 Jul 2019 17:21:00 +0000 > From: astian <astian@e-nautia.com> > Message-ID: <bcd08f6c-1c13-0eb4-92b2-4e904b19a0ce@e-nautia.com> > > I doubt it makes any difference to the timing, which I think > Chet has already answered, but it is worth pointing out that these > two commands ... > > printf '%s\n' "`printf %s "$i"`" > printf '%s\n' "$(printf %s "$i")" > > which (I believe)) are supposed to be the same thing, using the > different (ancient, and modern) forms of command substitution aren't > actually the same. In the first $i is unquoted, in the second it is > quoted. Here, since its value is just a number and IFS isn't being > fiddled, there is not likely to be any effect, but if you really > want to make those two the same, the first needs to be written as > > printf '%s\n' "`printf %s \"$i\"`" > > Such are the joys of `` command substitutions (just avoid them). > > kre Dear Robert Elz, I'm aware of several of its peculiarities and I typically do avoid them. However, is it true that $i is unquoted in the first case? Consider: i='foo bar' set -x printf '%s\n' "`printf '<%s>' "$i"`" printf '%s\n' "`printf '<%s>' \"$i\"`" printf '%s\n' "`printf '<%s>' $i`" Which outputs: ++ printf '<%s>' 'foo bar' + printf '%s\n' '<foo bar>' <foo bar> ++ printf '<%s>' 'foo bar' + printf '%s\n' '<foo bar>' <foo bar> ++ printf '<%s>' foo bar + printf '%s\n' '<foo><bar>' <foo><bar> Cheers.
Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread
backquote peculiarities (was: Re: Combination of "eval set -- ..." and $() command substitution is slow) astian <astian@e-nautia.com> - 2019-07-15 22:19 +0000
csiph-web