我有一个简单的Phing脚本,应该ssh到服务器,做一些事情并返回结果,如下所示:
<project name="test" default="update">
<target name="update">
<ssh host="${db:host}" username="${db:host:ssh:user}" password="${db:host:ssh:password}" command="echo 'OK' && echo 'NOOK'" display="true" property="ssh:result"/>
<echo msg="result: ${ssh:result}"/>
</target>
</project>
我希望结果为'NOOK',但实际结果是:
[echo] result: OK
NOOK
我有点困惑,因为我对最后执行的命令的值感兴趣,而不是第一个。任何提示?
答案 0 :(得分:1)
结果是正确的。你的命令是回应&#39; OK&#39;如果它没有错误地通过,它应该回应&#39; NOOK&#39;。
echo 'OK' && echo 'NOOK'; # result is "OK\nNOOK"
如果您想要上一个命令的结果,它应该如下所示:
(exit $? && echo 'OK') || echo 'NOOK'
应该显示上一个命令的结果。你可以替换退出$?任何你想知道结果的命令。
编辑:问题是bash而不是phing ...如果你想知道最后一个phing命令的结果,你应该学习http://www.phing.info/docs/guide/trunk/apbs17.html以及如何获得想要知道结果的phing命令的返回值。