【问题标题】:For loop in Cygwin bash shell followed by ">"Cygwin bash shell 中的 for 循环后跟“>”
【发布时间】:2018-06-12 17:19:51
【问题描述】:

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

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

我得到一个“>”,要求我继续输入,而不是预期的行为。为什么?

【问题讨论】:

  • Don't parse ls; for i in *; do ....
  • 这种方法太糟糕了,哈哈

标签: bash for-loop cygwin


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    您的for 循环仍在等待终止值列表的分号或换行符。到目前为止,您的循环将i 设置为ls 生成的单词列表、单词do、单词echocurrent 值扩展生成的单词idone 这个词。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2012-06-28
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多