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