zsh-users
 help / color / mirror / code / Atom feed
From: "Mark J. Reed" <markjreed@gmail.com>
To: zsh-users@zsh.org
Subject: Re: Counting characters in command output?
Date: Wed, 14 Feb 2024 10:58:39 -0500	[thread overview]
Message-ID: <CAA=-s3yahhzqxELBD=oWy_OjLcbL_N9cu5y-PwJ_qOdYcKm6dA@mail.gmail.com> (raw)
In-Reply-To: <0b3cf56b-004d-4a9f-a643-a53ccb50e278@eastlink.ca>

[-- Attachment #1: Type: text/plain, Size: 2352 bytes --]

> I myself almost always want lines.  Or elements.  Sometimes words,
almost  never characters.

As I said, it's the consistency. If you have a scalar parameter named *foo*,
*$#foo* is the number of characters. If it's an array, *$#foo* is the
number of elements.  The key point in my mind is that when you assign a
parameter from command substitution, e.g. *foo=$(bar)*, then what you get
is a scalar parameter, not an array. You *can* get an array instead, but
you have to ask for it explicitly by putting extra parentheses around the
right hand side: *foo=($(bar))*. So parameter assignment defaults to scalar
mode and requires extra punctuation to do array mode. But directly counting
the result of the substitution with no intervening parameter defaults to
array mode and requires extra punctuation to do scalar mode.


On Wed, Feb 14, 2024 at 10:37 AM Ray Andrews <rayandrews@eastlink.ca> wrote:

>
>
> On 2024-02-13 22:49, Roman Perepelitsa wrote:
>
> Right, command substitution. In my opinion, it's unfortunate that
>
> command substitution in zsh splits on IFS by default. I wish this
> wasn't the case. It's not even common that one wants to split command
> output into words. Lines -- perhaps, but not words. So the default
> behavior in this case is rarely what is desired and has to be actively
> turned off.
>
> What are the vectors?  First must be logical necessity, second consistency
> -- avoid strange exceptions -- third and fourth would be helpfulness and
> tradition, with old-school guys favoring tradition and guys like me
> favoring helpfulness.  I've spent more hours trying to get splitting issues
> correct than anything else.  Characters, words, IFS, lines, elements ...
> it's the  most obscure and confusing part of the shell.  Lacking any
> focused explanation of the entire subject what I do is just throw saved
> snippets of code at problems until something sticks -- it looks about
> right, but even there I might think I have line splitting when it's really
> elements.  I wish there were enough of us on this list to put things to a
> vote sometimes and in this case I'd bet that Roman's view would win
> overwhelmingly.   I myself almost always want lines.  Or elements.
> Sometimes words, almost  never characters.
>
>
>
>

-- 
Mark J. Reed <markjreed@gmail.com>

[-- Attachment #2: Type: text/html, Size: 3229 bytes --]

  reply	other threads:[~2024-02-14 15:59 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-13 20:38 Mark J. Reed
2024-02-13 20:41 ` Roman Perepelitsa
2024-02-14  0:45   ` Mark J. Reed
2024-02-14  6:49     ` Roman Perepelitsa
2024-02-14 13:56       ` Mark J. Reed
2024-02-14 15:36       ` Ray Andrews
2024-02-14 15:58         ` Mark J. Reed [this message]
2024-02-14 16:30           ` Ray Andrews
2024-02-15 14:34             ` Lawrence Velázquez
2024-02-15  9:50         ` Roman Perepelitsa
2024-02-15 14:30           ` Lawrence Velázquez
2024-02-15 15:29             ` Ray Andrews
2024-02-15 16:16               ` Roman Perepelitsa
2024-02-15 16:55                 ` Ray Andrews
2024-02-15 14:53           ` Ray Andrews
2024-02-16  1:53       ` Bart Schaefer
2024-02-16  4:53         ` Lawrence Velázquez
2024-02-16 18:03           ` Bart Schaefer
2024-02-16 18:38             ` Mark J. Reed
2024-02-16 19:36               ` Bart Schaefer
2024-02-16 19:37             ` Lawrence Velázquez
2024-02-16 21:06               ` Mikael Magnusson

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='CAA=-s3yahhzqxELBD=oWy_OjLcbL_N9cu5y-PwJ_qOdYcKm6dA@mail.gmail.com' \
    --to=markjreed@gmail.com \
    --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).