From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8226 invoked by alias); 10 Jul 2010 17:39:50 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 15161 Received: (qmail 21140 invoked from network); 10 Jul 2010 17:39:39 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received-SPF: none (ns1.primenet.com.au: domain at brasslantern.com does not designate permitted sender hosts) MIME-Version: 1.0 In-Reply-To: References: Date: Sat, 10 Jul 2010 10:39:37 -0700 Message-ID: Subject: Re: Assign to parameter in parameter -- opposite of ${(P)name}? From: Bart Schaefer To: "Benjamin R. Haskell" Cc: Zsh Users Content-Type: text/plain; charset=ISO-8859-1 On Fri, Jul 9, 2010 at 4:17 PM, Benjamin R. Haskell wrote: > It's the end of the week, and I'm tired, so I'm sure I'm completely > overlooking something obvious, but how do you *assign* to a parameter > whose name is in a parameter? Your first attempt wasn't complicated enough, but your second attempt was too complicated. :-) % name=foo % : ${(P)name::=something} % print $foo something % print $name foo The (P)name is interpreted before the ::= so you don't need nested expansion.