Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Problems with for loops and : modifiers
- X-seq: zsh-users 7478
- From: pleb@xxxxxxxxxxxxxx
- To: zsh-users@xxxxxxxxxx
- Subject: Problems with for loops and : modifiers
- Date: Wed, 26 May 2004 01:55:52 -0700
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
I'm having problems doing something that should be simple. I want to iterate over a set of files in a directory and run some commands on those files. In the command I would like to strip the suffix of a filename away (ie basename) and add a new suffix.
I can do this interactively in zsh, using several of the different builtin "for" commands, but not in the following shell script.
Q:
1. Why do the "for" loops work interactively and get a syntax error in a script? To me a newline terminator is a newline terminator.
2. Maybe I have the sense of SHORT_LOOPS backward?
3. Why does the :r modifier work interactively and not in a script?
4. What are the suggested ways to do what I want to do?
zsh script follows.
Thanks in advance.
leb
#/bin/zsh
echo "one"
#files get echoed but :r is broken
for i in *.h; { echo $i:r ; }
echo "two"
#file get echoed, but :r is broken
for i in *.h
do
echo ${i}:r
done
echo "three"
# works perfectly when run interactively but gets an error in a script
#for i (*.h) echo $i:r
echo "four"
# works perfectly when run interactively but gets an error in a script
#foreach i ( *.h)
#echo $i:r
#end
#
--
Lawrence E. Bakst
pleb@xxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author