E2B SDK 支持在命令运行过程中处理 stdout 和 stderr,适合实时日志、进度展示和长任务观察。
监听命令输出
TypeScript 示例:
const result = await sandbox.commands.run("for i in 1 2 3; do echo step-$i; sleep 1; done", {
onStdout: (data) => {
console.log("stdout:", data);
},
onStderr: (data) => {
console.error("stderr:", data);
},
});
console.log(result.exitCode);Python 示例:
result = sandbox.commands.run(
"for i in 1 2 3; do echo step-$i; sleep 1; done",
on_stdout=lambda data: print("stdout:", data),
on_stderr=lambda data: print("stderr:", data),
)
print(result.exit_code)使用建议
流式输出适合前端实时展示或服务端日志采集,但业务逻辑仍应以最终 exitCode 判断命令是否成功。回调参数是输出片段,不应假设一次回调对应一行日志。日志量较大时,应在业务侧做截断、采样或落盘,避免把完整输出保存在内存中。
该文章对您有帮助吗?