Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Unable to process a for loop as expected??
- X-seq: zsh-workers 2024
- From: Zefram <A.Main@xxxxxxxxxxxxxxxxx>
- To: dpd@xxxxxxxx
- Subject: Re: Unable to process a for loop as expected??
- Date: Sun, 18 Aug 1996 19:45:45 +0100 (BST)
- Cc: zsh-workers@xxxxxxxxxxxxxxx
- In-reply-to: <17552567901167@xxxxxxxx> from "dpd@xxxxxxxx" at Aug 18, 96 01:55:20 pm
>list="a b c d"
>for character in $list
You're trying to have word splitting done on $list, in order to
generate multiple words for the for loop. By default zsh does no field
splitting. There are three main approaches to this problem.
1. In order to get sh behaviour in this regard, use "setopt
sh_word_split". ("emulate sh" will do this, among other things, and
zsh will have this option set by default if invoked as sh.)
2. In order to do field splitting here only, leaving the default
behaviour unchanged, use $=list instead of $list.
3. In order to make the script use idiomatic zsh, rewrite it using an
array:
list=(a b c d)
for character in $list
This last method has the advantage that the values to be looped over
can contain whitespace:
list=(a b c 'd and some more text with spaces')
>BTW, according to the extracted sources, I am using zsh version zsh-2.6-beta19.
>However, according to the man pages, I am using zsh version 2.7. (Why
>the discrepancy?)
For a while the man pages said 2.7 because that was expected to be the
next public release, and it would be too much trouble to change the man
pages every version. The latest release is 3.0.0, and the man pages
say 3.0.
>I am running the LINUX operating system, version 1.3.91.
Not a terribly stable version, AFAIK. Apparently 1.3.98 and 1.3.100
are much better. (I'm still running 1.3.80 -- very stable.)
-zefram
Messages sorted by:
Reverse Date,
Date,
Thread,
Author