From: lat AT iki DOT fi (Lassi A. Tuura) Subject: Re: bash-2.x 24 Jul 1998 21:02:14 -0700 Message-ID: References: <199807230858 DOT KAA03131 AT digicash DOT com> Reply-To: "Lassi A. Tuura" Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: Jan Nieuwenhuizen Cc: gnu-win32 AT cygnus DOT com |> for name [ in word; ] do list ; done |> The list of words following in is expanded, gener- |> ating a list of items. The variable name is set to |> each element of this list in turn, and list is exe- |> cuted each time. If the in word is omitted, the |> for command executes list once for each positional |> parameter that is set (see PARAMETERS below). The |> return status is the exit status of the last com- |> mand that executes. If the expansion of the items |> following in results in an empty list, no commands |> are executed, and the return status is 0. |> |> Which means that empy word-list is valid, and shouldn't trigger |> an error. |> 10:55:25 mub ~/ftp/gnu/bash-2.02$ for i in ;do echo $i; done |> bash: syntax error near unexpected token `;d' No, bash behaves as described. Legal syntax is one of these: for i in x1 x2; do echo $i; done for i do echo $i; done for i; do echo $i; done dummy=; for i in $dummy; do echo $i; done It is not legal to say `for i in ; do'. The list after `in' can be empty only as a consequence of expansion (shell variable or file name), not before the expansion; reread the documentation you quoted. Hence, if you omit the `word' list, you must omit `in' as well. If you are using this inside makefiles where you don't know whether the list is going to be empty or not, you can use something like this: for i in $(list) ..; do # $(list) may be empty, and is if [ x$$i = x.. ]; then :; else # expanded by make, not shell # commands fi done Cheers, //lat -- With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead. --RFC1925, "The Twelve Networking Truths" - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".