From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id a2952194 for ; Mon, 3 Dec 2018 13:57:01 +0000 (UTC) Received: (qmail 3881 invoked by alias); 3 Dec 2018 13:56:44 -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: List-Unsubscribe: X-Seq: 23785 Received: (qmail 18249 invoked by uid 1010); 3 Dec 2018 13:56:44 -0000 X-Qmail-Scanner-Diagnostics: from mail-it1-f174.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.100.2/25112. spamassassin: 3.4.2. Clear:RC:0(209.85.166.174):SA:0(-2.0/5.0):. Processed in 2.244689 secs); 03 Dec 2018 13:56:44 -0000 X-Envelope-From: pengyu.ut@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=c5wzklsFzXYJ8efMXZjC6lQHuZhRwZj+8FmZQi+A/zE=; b=kgqB4DSCCkENcCadQTPgx/vot1d3XmLCh5ReGA1If5VN+QtQAgrfz/oVxBnwJkXBBw Sul3sRGFWU1Z29nZ6KfoMPT6L+9biu6WoE68Pc/actsX0dyLitsskNRINR3sjWKSLMIR MIw0P0vPa1XyhdkzjxGyK43EZAPTpZKa0W571F35lcKlK5L4gXdMMpztWM0EGestvz2q wCTox2twgcnJqxV1G0Tpr5BMAWNmVQ8Gg4sS/XVqLP0aKYpameVdQawCR6fsz6/C+BpG NEjXS0m+uWNwolZ7GI9nEZh8TJeeqw0ESt0aYHPQuM8xlVitTyyXKRnBRM0YsWfUCOQy IcDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=c5wzklsFzXYJ8efMXZjC6lQHuZhRwZj+8FmZQi+A/zE=; b=nzeJ50OCX4RkqxqyazzSvl9rdRuhXPECafN6wKUYJWvnrfrQRGMpWsyzdsMmBM8V89 cwcRc2NIMoV0UcOXfavWJdM2SfM0kOLRvonfvmElLgA0sYMf7bfos7J6xWrFlKMw5JtY /dWo/UZ3etaHhSlneKSZ3ZhOQvCRRmgbzlhm/AxF3hTSsgAEGGcz+jRuCsP4lS151t65 iYiSJ40o5LbvyY+jcXMmL5LfqdVL8W0ZRZpFxRtLOwRuDzM7AJPAnOJfUSRsO+Pn/Gu4 6MqSfrMXcQR4h1eAN95wLSrsewBA6ZUdFNOO8r/rdaCynp5W7uyOvdrjfQa6xmREDWAS vypA== X-Gm-Message-State: AA+aEWaD109axhQBqbD3Svie3gvcEMIALiBQbmbg3aLh5duANoi1mwBk fAbhExvyEQx96wnHbAoeKondbGFVvNdOUxuF52QD/JvD X-Google-Smtp-Source: AFSGD/U3eAgt69tMkzXAeOKg9RNgIzRXfChNfPtMMnhggf3ahcK1ItPS8pTM1tbnVaXbq/rYz0Rg7r8dFrtH+IaW9Yo= X-Received: by 2002:a02:242b:: with SMTP id f43mr14242198jaa.144.1543845398779; Mon, 03 Dec 2018 05:56:38 -0800 (PST) MIME-Version: 1.0 From: Peng Yu Date: Mon, 3 Dec 2018 07:56:26 -0600 Message-ID: Subject: numeric for-loop and string for-loop To: zsh-users Content-Type: text/plain; charset="UTF-8" Hi, The following zsh and bash code generate different resutls. I feel the bash convention is better. To make the second i as string in zsh, what is the best solution so that the minimum amount of code is changed. (I'd rather not to change the second `i` to some other variable name as each for-loop should be independent from each other, and should not know each other to make the code work.). Thanks. $ cat main.sh #!/usr/bin/env zsh # vim: set noexpandtab tabstop=2: set -v for ((i=0;i<2;++i)) do echo $i done declare -p i for i in a b do declare -p i done $ cat main.bash #!/usr/bin/env bash # vim: set noexpandtab tabstop=2: set -v for ((i=0;i<2;++i)) do echo $i done declare -p i for i in a b do declare -p i done $ ./main.sh for ((i=0;i<2;++i)) do echo $i done 0 1 declare -p i typeset -i i=2 for i in a b do declare -p i done typeset -i i=0 typeset -i i=0 $ ./main.bash for ((i=0;i<2;++i)) do echo $i done 0 1 declare -p i declare -- i="2" for i in a b do declare -p i done declare -- i="a" declare -- i="b" -- Regards, Peng