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.
我知道如何将 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.