From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22779 invoked by alias); 2 Jul 2012 16:19:32 -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: 17165 Received: (qmail 21360 invoked from network); 2 Jul 2012 16:19:29 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.3.2 Received-SPF: pass (ns1.primenet.com.au: SPF record at spf.messagingengine.com designates 66.111.4.27 as permitted sender) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=mm.st; h= message-id:from:to:mime-version:content-transfer-encoding :content-type:subject:date; s=mesmtp; bh=Hpro3pmgBJs6k7hc7xDH6OZ EblQ=; b=c9sctz7xrZrsTG+R4lfYugVtuXmr2UXkJom7MdnRha/eEwpUo/vAwSP mBTdpJ4kc5ldxYHSr+zqtVO6meJJdhq9igR46TGzkpQlvi47fJWkraZyhQY9/GhM byJv7sqcvW/Xf3ytpg+5rhoDwsYEXOFWmgoZVHsZA2O7KCZG+Oh4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:mime-version :content-transfer-encoding:content-type:subject:date; s=smtpout; bh=Hpro3pmgBJs6k7hc7xDH6OZEblQ=; b=OsCqFgpNOSADLzllfBWxyuE8jXW+ TtxV6Cp7WOht6r3sHzHe1ZjYW8nrmFGjXEwXctO1E0J6XDpvwfBZQMxRzQcf20Vs 0VcWRHyW9FACQcfaMfKM3ApzXbVYG7EOCuu7q8Gqo2pMArU8vUee6HtthI5RsMza D7XYFDdKQAmbpEE= Message-Id: <1341245591.9491.140661096848393.5D4572DC@webmail.messagingengine.com> X-Sasl-Enc: Syk/RUYPxSdA67lbbhanYee/MrvfzlcNVsohBKPRU01E 1341245591 From: Ronald Fischer To: zsh-users@zsh.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain X-Mailer: MessagingEngine.com Webmail Interface Subject: passing modified parameter list to child Date: Mon, 02 Jul 2012 18:13:11 +0200 I have two scripts, master and slave. When the master script calls the slave script, it should pass all arguments to the slave (like in "$@"), with the following twist: If the LAST argument of master does NOT start with a dash, this argument should get a prefix "--use=". For example, if the user calls master --foo --bar=baz abcd this should be turned into slave --foo --bar=baz --use=abcd but a call master -x -y should just become slave -x -y Of course I can solve this "the brute force way", i.e. - Assign "$@" to an array, - Test the last parameter whether it starts with a dash, - If yes, prefix it with "--use" - Pass the array to slave. However, given the plethora of array- and string-manipulation features of zsh, I was wondering whether there is a more "zsh-like" way to do it. Any suggestions? You don't need to present a complete solution to the problem; just a few ideas would already help. Ronald -- Ronald Fischer + If a packet hits a pocket on a socket on a port, + and the bus is interrupted and the interrupt's not caught, + then the socket packet pocket has an error to report. + (cited after Peter van der Linden)