Phing ssh перехват команды результат странный результат

У меня есть простой скрипт 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' &amp;&amp; echo 'NOOK'" display="true" property="ssh:result"/>
    <echo msg="result: ${ssh:result}"/>
</target>
</project>

Я ожидаю, что результат будет "NOOK", однако фактический результат:

     [echo] result: OK
NOOK

Я немного озадачен, так как меня интересует значение последней выполненной команды, а не первой. Есть намеки?

1 ответ

Результат верный. Ваша команда должна повторить 'OK', и если она прошла без ошибок, она должна повторить 'NOOK'.

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, которую вы хотите узнать результат.

Другие вопросы по тегам