当我在cygwin bash shell中输入以下命令时:
for i in $(ls) do echo $i done
我得到了一个“>”要求我继续打字,而不是预期的行为。为什么呢?
答案 0 :(得分:2)
你需要分开你的for,do和done语句。试试这个:
for i in $(ls); do echo $i; done
您还可以使用换行符分隔语句。例如:
cygwin$ for i in $(ls)
> do
> echo $i
> done
答案 1 :(得分:1)
您的for
循环仍在等待终止值列表的分号或换行符。到目前为止,您已将i
设置为ls
生成的单词列表,单词do
,单词echo
,以及<扩展< em> i
的当前值和单词done
。
>
是所谓的辅助提示符,表示shell仍在等待输入以完成for
启动的命令。