From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 5943 invoked from network); 2 Dec 2022 01:35:41 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 2 Dec 2022 01:35:41 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1669944941; b=bPxdjojiIdPveAUNO20JvIuXrPea+cmNvROp39GYf4x+xw5M7GUFke35ktfiPJ72OspOHz9+pK AvQ4a+mZyAk+TF/nP2MNLAR8UiF91MbbTskWlUVajJzk3FIb9TmbH1cXK9QNqux+p2LvlzhpYJ cTxGVCSx2L3RsjMugMo5E1pvwNJFmirSfb39573ty/Himv2G2rdcH+1H6SSTcM26T1woDhyTlw 9roiTebpEJcCtKrIHwYsR2/IcrzIeBO2nvDjdvaUWiX4Po+Rc8dgLGEE2VlmEz8hEmsy37b48g FXAfNOtj29XZXedWoId1RDb7ScS3MSXzfQiGbpINDivEXQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f53.google.com) smtp.remote-ip=209.85.208.53; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1669944941; bh=kpUsK/6NW3UikSfNo8Cjgsf6b25l2Wxq/KOPHeF7YgY=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=SaE0f9oPGwj8Zpk1GKN3MNOesp9ZyYUSljc9r7o8eVodq3PdkwkXag/ZYhGg2qVG+izxulJ9Bs rXu2CXbyRmZnnhgm7av+6C4NYbC/4UCExln8XlKC1OTD2KDheZTFnJpziTEJ9Tvpe0Ov8ugFgw GCee/j06DLQ6T/Sq8fxShrId5taOYK8qjhT0zqD/CsODkoDOE5fBup+UlRgpRM2OKXy6U/tbh5 O5AX5N8UwHxocBID3bee65Alej7SSJXMoKsK/IKH2SgnjzwNWPRhwLhU5OmNXT49vKzayIAGgI /2C11X/M34xibW+e+cwot52mWQSLXjHXg1DdzRfX7WB1Sw==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=Y6OEmw3UIXLzOGqcO+d0Q/cUXs2yvrHq+rR3mkmF6yg=; b=LMriS5aMIYW/Z4FAIXFJfhgKld fR2/+UEtnHrAp9n1RqRlvLXHCv8Vo8IgjWcgng7OnGvJq6ftrpnxOD/nTvbsJxgaGOuGR6gnE9h4h D4BjZhAnk23f4jZbR5cFIEbuz1w1rdfUai3egQvrSwkDawtvnNFuMtQFPC4VucWe1xuKQgaDo5cmi PWOq/0oh6k7E7CEw8Ffzl1eKcTe6wGTHHigwPjMfbnpb2trISGjwthTyTrJenzY0NbM1UyLyp8kit GNwKaM8gtfdbhax+74sT37XUE3smSmvtZM6KEBQ5oy94cSjcltRzzel1b/Ch9v6LvU6FB4Y78sADQ 7XVKZ42Q==; Received: by zero.zsh.org with local id 1p0uxo-0001vz-P1; Fri, 02 Dec 2022 01:35:40 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f53.google.com) smtp.remote-ip=209.85.208.53; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ed1-f53.google.com ([209.85.208.53]:45888) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1p0uwg-0000jI-8r; Fri, 02 Dec 2022 01:34:31 +0000 Received: by mail-ed1-f53.google.com with SMTP id s5so4595386edc.12 for ; Thu, 01 Dec 2022 17:34:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=Y6OEmw3UIXLzOGqcO+d0Q/cUXs2yvrHq+rR3mkmF6yg=; b=Nao8WktIEJHLFiOw+o6XvZzGEvVK9FWRtR5yEYFUNVXPXtSfTqWuSpFLbmmHb+erQu IBb/hfPUgeJt0JlUAZwhi7Wx1lx4HPpY5Kyqvjm7mk45EOI5uE5VhyC2MqShYjDOhZ0j pIw/CLMkButT4o4lxHw8MUr5ghu6HR2Y1yjF1AaOF6ai0vN73ohiBgSMadGHemjV6kDL 7U1DhnboD3JRnEEK1Xb0MS8OhqNlpNGSCT+nc6/oG09jmOJahfcHhKqVa0Fxf+T5HQKh 5mTuz8qg8fbVZo7EUmLvtmybKTo38BkF9Avn3FJcZw+qe2fJud5jGeHeUUpj04fBrUh1 rh3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Y6OEmw3UIXLzOGqcO+d0Q/cUXs2yvrHq+rR3mkmF6yg=; b=ZyLZ7BENX5iHRriE8TKP41y85ZWBmPGhWnQEA32h5Xicpz0z0UgfQb5K64kiNfRBl1 ECz9LDoDmuBwn/dUdnECLRDb+SF15ROVE/5PT+X39Dfce3s2+PDAyr8tQtwMvAkapUat gPJa6/jsC+r6MHEialPEiGzD4Am9FDQ/AeicfCgGc5NOc0DNkSRWUF1TmbSONEGpERcr qtrIFWMgDn4ZI40i2yQeua+xRtd6UZe62wIvXDWziJMybOHSPDy9OZm9whddUyMO6O1q Ex9ZN7+4tCXhileawsrHYA6WjPBpl8UvQOOCCPXESKoGmIFNtdkbqqIgWoj3NlLKyjNb 3NLg== X-Gm-Message-State: ANoB5pmdWRnnv580Q4IWDUBFA8AoJ8bI3+3ekNFfYgV1vyHbGV7WpTNT +ghgH6xk3yS+8FMbftKHuA0Jbwh3AAEZWOc+3QrqPA== X-Google-Smtp-Source: AA0mqf7DpoyaQGYhU9aGp3/YWJHmitr1hD9jgSD+zYbAoRX7slWt7UcY2MsUSeZ0snM51u4UIRnGA5LuTU2rIGRBnmo= X-Received: by 2002:aa7:dd4d:0:b0:45c:98a9:7bbf with SMTP id o13-20020aa7dd4d000000b0045c98a97bbfmr46281043edw.372.1669944869853; Thu, 01 Dec 2022 17:34:29 -0800 (PST) MIME-Version: 1.0 References: <1dcdd69c-ce29-921f-f0f0-6862f68b62a6@gmx.com> In-Reply-To: From: Bart Schaefer Date: Thu, 1 Dec 2022 17:34:18 -0800 Message-ID: Subject: Re: Modifiers and parameter expansion? To: dominik.vogt@gmx.de, zsh-users@zsh.org Content-Type: text/plain; charset="UTF-8" X-Seq: 28472 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On Thu, Dec 1, 2022 at 4:52 PM Dominik Vogt wrote: > > > > 7. Modifiers > > Okay. Why are "%" "%%" "#" "##" "/" "//" refered to in this > section? Because they happen to be interpreted at the same "step" as modifiers, and the documentation grew organically? > > In the Parameter Expansion section > > > > ${NAME} > > The braces are required unless(1) they are not(2) required > unless(3) some option is not(4) present. Quadruple negative. Not sure where you came up with that. The braces are required when (A) or when (B) or when (C), except (D) when not (C). (A) followed by something may be part of an identifier (B) complicated forms (C) KSH_ARRAYS (D) colons after or other tokens before > All I understand is that it's trial and error to figure out > whether braces are required. Nonsense. > $ unsetopt KSH_ARRAYS > $ echo ^a =ls > $ echo ~a No, that's completely irrelevant. The BRACES aren't required, but the $ IS. The above is not parameter expansion. NO_KSH_ARRAYS allows $X[2] $X:h $^X $=X $~X $#X $+X KSH_ARRAYS requires ${X[2]} ${X:h} ${^X} ${=X} ${~X} ${#X} ${+X} > This section could be split in two, to improve readability: Possibly, but that affects several of the following descriptions as well.