tcsh foreach one liner 只显示第一个对象

tcsh foreach one liner only shows first object

我知道如何将 foreach 用作 shell 脚本。但是我遇到了一个有线问题,假设我正在尝试只打印文件夹名称,我可以这样做:

foreach f (*/)
  echo $f
  end

输出为 1/, 2/, 3/ 但是假设我正在尝试以单行方式执行此操作:

foreach f (*/) ; echo $f ; end

首先,它不会完成,它会让我输入另一个 'end' 来完成 foreach,在我完成之后,它只会显示第一个元素,而不会遍历所有文件夹,例如之前。

有人知道为什么会这样吗?我该怎么做才能正常工作?

谢谢。

来自 man tcsh

The foreach, switch, and while statements, as  well  as 
the if-then-else form of the if statement, require that 
the major keywords appear in a  single  simple  command 
on an input line as shown below.