shell – 如何使用Ant exec任务来运行管道命令?
发布时间:2020-12-15 19:30:13 所属栏目:安全 来源:网络整理
导读:我正在使用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" //e
我正在使用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”。有什么建议么?
如果你像Aaron所说的那样使用sh -c,你可以将整个管道作为一个参数传递,有效地做到:
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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |