# 多脚本运行

支持选择多个Python/Js/PHP等脚本以并行或穿行的方式运行,这些脚本可以在代码片段本地管理维护。

multi-script-menu

# 入参

multi-script-input

# 语言

本地原生虚拟机

  • Python3
  • JavaScript
  • PHP
  • LUA
  • SHELL

注意:本地原生虚拟机依赖当前机器环境,如果没有对应的虚拟机,则无法执行脚本。

# 代码片段

代码片段会显示【文件管理】->【代码文件】下对应编程语言列表。

code-snippet

# 参数

这里可以通过sys.argv(python脚本)或者$argv(php脚本)方式给脚本通义传递参数,当然这里也可以使用变量表达式引用前面的输出作为脚本的输入。

multi-script-input-params code-snippet-demo

# 运行模式

  • 并行运行

    选择的脚本同时运行,可以提高执行效率。可以设置运行时并发的脚本数量,默认为0表示所有脚本同时并发执行。

    multi-script-parallel-mode
  • 串行运行

    选择的脚本依次运行,只有等前面的脚本执行完后才接着执行后续的脚本。

# 超时

设置脚本执行的超时时间,超过该时间,系统会强制终止,并输出错误信息:

[
  {
    "./snippet/xqnnyrdgdv/111.py": {
      "cost": 1004,
      "endAt": "2025-07-08 08:14:57.643",
      "error": "execute command timeout",
      "output": null,
      "startAt": "2025-07-08 08:14:56.639"
    },
    "./snippet/xqnnyrdgdv/2222.py": {
      "cost": 1004,
      "endAt": "2025-07-08 08:14:56.639",
      "error": "execute command timeout",
      "output": null,
      "startAt": "2025-07-08 08:14:55.635"
    }
  }
]

# 异常处理

默认情况下,App对发生的错误是抛出异常,然后停止后面的App运行,这里即使只有一个脚本异常,整个App都会报错。如果你想忽略错误继续运行,可以在异常处理的操作哪里选择忽略。

multi-script-error-handler-throw

忽略错误,继续运行:

multi-script-error-handler-ignore

# 出参

由于可以选择多个脚本执行输出,所以其输出结构如下Key、Value形式:

[
  {
    "./snippet/xqnnyrdgdv/111.py": {
      "cost": 5038,
      "endAt": "2025-07-08 08:41:18.755",
      "error": "",
      "output": "['/iolinker/snippet/xqnnyrdgdv/111.py', 'aaa', 'bbb']",
      "startAt": "2025-07-08 08:41:13.717"
    },
    "./snippet/xqnnyrdgdv/2222.py": {
      "cost": 3036,
      "endAt": "2025-07-08 08:41:16.753",
      "error": "",
      "output": "['/iolinker/snippet/xqnnyrdgdv/2222.py', 'aaa', 'bbb']",
      "startAt": "2025-07-08 08:41:13.717"
    }
  }
]

这里,终端的输出会作为该APP的输出结果,例如:

  • Python3

    输出可以使用print

    print('xxx')
    

    注意:print方法默认是带换行的,会影响输出。如果想要输出不带换行,可以使用如下:

    print('xx', end='')
    
  • JavaScript

    输出可以使用console.log

    console.log('xxx')
    
  • PHP

    输出可以使用echo

    <?php
    echo "123";
    
lastUpdated: 2025/8/21 13:06:48