首页 > 解决方案 > Coldfusion 8 和 2016:CFEXECUTE 不返回结果/错误

问题描述

我在浏览器中得到的只是一个空白屏幕。如果我不使用 IsDefined,我会在页面中收到一条错误消息,指出该变量不存在。

如果我拼错了一个命令(例如:使用 /bin/bsh 而不是 /bin/bash),我会收到一个异常,指出 CF 找不到该程序。所以它似乎正在工作。我只是想检查它是否真的在运行。

这是我的代码:

------
<cfexecute name="/bin/ls" arguments=" -la /" errorVariable="error" variable="result"></cfexecute>
<cfif IsDefined("result")>
    <cfdump var="#result#">
</cfif>
<cfif IsDefined("error")>
    <cfdump var="#error#">
</cfif>

<cfexecute name="/bin/bash" arguments=" -c '/bin/ls -la /'" errorVariable="error" variable="result"></cfexecute>
<cfif IsDefined("result")>
    <cfdump var="#result#">
</cfif>
<cfif IsDefined("error")>
    <cfdump var="#error#">
</cfif>

标签: coldfusioncoldfusion-8coldfusion-2016cfexecute

解决方案


您需要指定一个timeoutoncfexecute才能按顺序获得有效的结果/错误。

默认timeout0,它是非阻塞的,这意味着你的命令是异步执行的。这意味着您不会立即得到结果。

我不确定对于 Adob​​e,“非阻塞”是否意味着完全忽略或最终设置variableand属性。error如果你好奇,你可以扔进cfsleep去找出来,只是请不要在生产中。:)


推荐阅读