From: "Lawrence Velázquez" <vq@larryv.me>
To: Ray Andrews <rayandrews@eastlink.ca>
Cc: zsh-users@zsh.org
Subject: Re: ${var:1:1:=y}
Date: Tue, 3 Feb 2015 19:18:36 -0500 [thread overview]
Message-ID: <412544FB-49A2-43AA-BC76-DC1AF1AA71BE@larryv.me> (raw)
In-Reply-To: <54D155C8.4080600@eastlink.ca>
On Feb 3, 2015, at 6:12 PM, Ray Andrews <rayandrews@eastlink.ca> wrote:
> We can of course do this:
>
> variable=${var:=xy}
>
> I'm wanting the naive expansion of that syntax to do this:
>
> variable=${var:1:1:=y}
>
> ... but it doesn't work. Can something like that be done?
(This is admittedly a non-answer, as I don't know whether there's a solution that's as succinct as you'd like.)
I would find that syntax (or something like it) very ambiguous. What would be assigned "y" in this case — `var`, or the slice of `var` that you were testing? Neither is obvious.
> At the moment I'm doing this:
>
> variable=${var:1:1}
> [ -n "$variable" ] || variable=y
>
> ... which is perfectly fine, but the above pseudosyntax would be elegant if it could be made workable.
Wouldn't testing the length of `variable` express your intent better?
> And I found something that puzzles me:
>
>
> test ()
> {
> echo $1
> echo ${1:0:1}
> /bin/echo ${1:0:1}
> echo ${1:1:1}
> echo ${1:0:1}${1:1:1}
> echo ${1:1:1}${1:0:1}
> }
>
> $ test -a
>
> -a
> [nothing]
> -
> a
> -a
> a-
>
> ... If I entered a valid switchofcourse I'd expect that to be eaten
> but a solitary dash? Bug? /bin/echo behaves as I'd expect.
Test cases should focus on the questionable behavior by discarding irrelevant details. Your case boils down to this:
% echo -
% /bin/echo -
-
%
vq
next prev parent reply other threads:[~2015-02-04 0:28 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-03 23:12 ${var:1:1:=y} Ray Andrews
2015-02-04 0:18 ` Lawrence Velázquez [this message]
2015-02-04 0:39 ` ${var:1:1:=y} Ray Andrews
2015-02-04 1:30 ` ${var:1:1:=y} Lawrence Velázquez
2015-02-04 3:25 ` ${var:1:1:=y} Bart Schaefer
2015-02-04 3:44 ` ${var:1:1:=y} Eric Cook
2015-02-04 17:10 ` The "-" and "--" options (was Re: ${var:1:1:=y}) Bart Schaefer
2015-02-04 17:42 ` Ray Andrews
2015-02-04 23:47 ` Lawrence Velázquez
2015-02-05 1:31 ` Ray Andrews
2015-02-05 1:52 ` Kurtis Rader
2015-02-05 2:03 ` Ray Andrews
2015-02-05 2:24 ` Bart Schaefer
2015-02-04 19:02 ` Peter Stephenson
2015-02-04 19:53 ` ZyX
2015-02-04 5:16 ` ${var:1:1:=y} Ray Andrews
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=412544FB-49A2-43AA-BC76-DC1AF1AA71BE@larryv.me \
--to=vq@larryv.me \
--cc=rayandrews@eastlink.ca \
--cc=zsh-users@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).