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
开始的命令。
当我在 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
开始的命令。