gpt4 book ai didi

shell - 如何使用 Ant exec 任务运行管道命令?

转载 作者:行者123 更新时间:2023-12-03 11:50:09 25 4
gpt4 key购买 nike

我正在尝试使用 Ant 中的“exec”任务运行以下命令:

ls -l /foo/bar | wc -l

目前,我的执行官看起来像这样:
<exec executable="ls" outputproperty="noOfFiles">
<arg value="-l" />
<arg value="/foo/bar" />
<arg value="|" />
<arg value="wc" />
<arg value="-l" />
</exec>

'ls' 命令看起来有效,但很难将输出传送到 'wc'。有什么建议?

最佳答案

如果您使用 sh -c正如 Aaron 建议的那样,您可以将整个管道作为单个 arg 传递,从而有效地执行以下操作:

sh -c "ls -l foo/bar | wc -l"

如果您使用单独的 args,它们将被 sh 使用,而不是传递给 ls(因此您只能看到当前目录)。

请注意,在我的系统上, ls -l包括找到的文件总数和列表,这意味着显示的计数比文件数多一个。所以建议:
<exec executable="sh" outputproperty="noOfFiles">
<arg value="-c" />
<arg value="ls foo/bar | wc -l" />
</exec>

关于shell - 如何使用 Ant exec 任务运行管道命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3931608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com