我如何使用ant <exec>在linux上执行命令?【JAVA教程】

!
也想出现在这里? 联系我们
信息

我如何使用ant <exec>在linux上执行命令?,第1张

概述我如何使用ant <exec>在linux上执行命令

我想用ant来执行下面的命令:

<exec executable=\”echo ptc@123 | sudo -S /app/Windchill_10.0/Apache/bin/apachectl -k stop\”> </exec>

但它回答错误说

\’可执行文件和参数周围的字符不是命令的一部分。

背景是:我想用ant来停止Apache服务器,但它不是由同一个用户安装我运行命令。

Apache常春藤:本地常春藤caching和本地存储库之间的区别

Ant replaceregexp任务 – 匹配并replaceHTML注释块

从(linux)和(cygwin在windows)调用bash脚本

jenkins和从windows批处理返回代码

Ant失败:线程“main”中的exceptionjava.lang.NoClassDefFoundError org / apache / tools / ant / launch / Launcher

任何人都可以帮助或给我一些线索?

提前致谢

Apache Ant的差异 – 执行与应用

使用Weblogic中的ANT和JUNIT的本地版本运行ant build

即使任务在其他平台上使用,Ant的tar任务是否可以设置linux文件权限?

从* nix在远程windows机器上执行exe或bat文件

在linux机器上用Ant进行安装失败,但在Mac机器上成功

Ant的<exec>任务使用Java的Process机制来运行命令,而这并不能理解特定于shell的语法,比如管道和重定向。 如果你需要使用管道,那么你必须明确地运行一个shell

<exec executable=\”/bin/sh\”> <arg value=\”-c\” /> <arg value=\”echo ptc@123 | sudo -S /app/Windchill_10.0/Apache/bin/apachectl -k stop\” /> </exec>

但在这种情况下并不是必须的,因为你可以只运行sudo命令,并使用inputstring来提供输入,而不是使用管道echo :

<exec executable=\”sudo\” inputstring=\”ptc@123 \”> <arg line=\”-S /app/Windchill_10.0/Apache/bin/apachectl -k stop\” /> </exec>

由于sudo -S需要一个换行符来终止密码,所以我已经添加了 在输入字符串的末尾(这是在XML中以属性值编码换行符的最简单方法)。

请注意,当涉及到分词时, <arg line=\”…\” />非常简单 – 如果任何命令行参数可能包含空格(例如,如果您需要引用某个目录下的文件,例如${user.home}/library/Application Support或者如果从不受控制的外部.propertIEs文件读取值),则必须使用具有value或file属性的单独arg元素自行拆分参数,例如:

<exec executable=\”sudo\” inputstring=\”ptc@123 \”> <arg value=\”-S\” /> <arg file=\”${windchill.install.path}/Apache/bin/apachectl\” /> <arg value=\”-k\” /> <arg value=\”stop\” /> </exec>

总结

以上是内存溢出为你收集整理的我如何使用ant <exec>在linux上执行命令?全部内容,希望文章能够帮你解决我如何使用ant <exec>在linux上执行命令?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞86 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容