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

时间:2017-08-07 04:00:02

标签: bash foreach tcsh

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

foreach f (*/)
  echo $f
  end

,输出为1 /,2 /,3 / 但是,假设我试图将其作为单行代码来实现:

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

首先,它不会完成,它会让我进入另一个'结束'来完成foreach,在我这样做之后,它只显示第一个元素,而不是像以前一样遍历所有文件夹。

有人知道为什么会这样,我能做些什么才能正常工作?

感谢。

1 个答案:

答案 0 :(得分:0)

来自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.