获取所有目录(以逗号分隔)并将输出发送到其他脚本
我们使用 phpDocumentator 来记录我们的 php 代码。 php 代码位于不同的字典中。 运行 phpDocumentator 的脚本如下所示:
./phpdoc -d dir1,dir2,dir3,dir4
每次添加新目录时,我都必须将其添加到脚本中。
我想动态地执行此操作。
ls -d ../*test*
这列出了所有需要的目录,但以空格分隔,而不是逗号分隔。
问题:
如何列出以逗号分隔的目录?
如何将此列表作为 -d 参数添加到 phpdoc 脚本中?
We use phpDocumentator to document our php code.
The php code is in different dictionaries.
The script which runs the phpDocumentator looks like this:
./phpdoc -d dir1,dir2,dir3,dir4
Every time we add a new directory, I have to add this one to the script.
I would like to do this dynamically.
ls -d ../*test*
this lists all needed directories but space separated and not comma separated.
Question:
How can I list the directories comma separated?
how can I add this list as -d parameter to the phpdoc script?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 ls -dm */ 生成以逗号分隔的目录列表。
-d
将仅返回目录,-m
将输出到以逗号分隔的列表。然后,您可以将输出存储在变量中并将其作为参数传递:
Use
ls -dm */
to generate a comma-separated list of directories.-d
will return directories only and-m
will output to a comma-separated list.You could then store the output in a variable and pass it along as an argument:
这是使用
find
和paste
的更简单方法:与此相同,但使用绝对路径:
以及带有
tr
的版本:以上将扫描递归地列出文件夹,除非您添加
-maxdepth 1
以仅列出一层深度。然后运行
phpdoc
如下:Here is simpler way using
find
andpaste
:and the same, but using absolute paths:
and version with
tr
:Above will scan folders recursively, unless you'll add
-maxdepth 1
to list only one level deep.then run
phpdoc
as:无需调用外部程序(假设 bash 或 ksh93):
请参阅下面 @mklement0 的评论。该解决方案的问题在于它会查找文件名和目录,因此:
涉及所有数组元素扩展的解决方案是 @mklement0(除非不需要转义 /)。
No need to call an external program (assuming bash or ksh93):
See @mklement0's comment below. The problem with this solution is that it will find filenames as well as directories, therefore:
The solution involving expansion on all array elements is @mklement0's (except there is no need to escape the /).