For 循环在 Cygwin bash shell 后跟“>”

For loop in Cygwin bash shell followed by ">"

当我在 cygwin 中键入以下命令时 bash shell:

for i in $(ls) do echo $i done

我收到一个“>”要求我继续输入,这与预期的行为相反。为什么?

您需要将 for、do 和 done 语句分开。试试这个:

for i in $(ls); do echo $i; done

您也可以用换行符分隔语句。例如:

cygwin$ for i in $(ls)
> do
> echo $i
> done

您的 for 循环仍在等待终止值列表的分号或换行符。到目前为止,您的循环设置 i 到由 ls、单词 do、单词 echo、由 [= 的扩展生成的单词列表=23=]当前 i 的值,以及 done.

这个词

>就是所谓的二级提示,表示shell还在等待输入完成for开始的命令。