跳转到内容

mise exec

  • 用法: mise exec [FLAGS] [TOOL@VERSION]… [-- COMMAND]…
  • 别名: x
  • 源代码: src/cli/exec.rs

使用已设置的工具执行命令

可用于避免修改 shell 会话,或使用 mise 已设置的工具运行临时命令。

工具将从 mise.toml 中加载,不过可以通过 <RUNTIME> 参数进行覆盖
请注意,只有指定的插件会被覆盖,因此如果一个 mise.toml 文件
包含 "node 20",但你运行 mise exec [email protected];它仍然会加载 node@20。

“--” 用于将运行时与传递给子进程的命令分隔开。

参数

  • [TOOL@VERSION]… — 要启动的工具,例如:node@20 [email protected]
  • [-- COMMAND]… — 要执行的命令字符串(与 --command 相同)

标志

  • -c --command <COMMAND> — 要执行的命令字符串

  • -j --jobs <JOBS> — 并行运行的任务数 小于 1 的值将按 1 处理 [默认值:4]

    环境变量: MISE_JOBS

  • --allow-env <VAR> — 允许传递指定的环境变量(对其他所有环境变量隐含启用 --deny-env) 支持通配符,例如:--allow-env='MYAPP_*'

  • --allow-net <HOST> — 允许访问指定主机的网络(对其他所有网络隐含启用 --deny-net) v1 中仅支持 macOS;在 Linux 上将回退为允许所有网络

  • --allow-read <PATH> — 允许从指定路径读取(对其他所有路径隐含启用 --deny-read)

  • --allow-write <PATH> — 允许写入指定路径(对其他所有路径隐含启用 --deny-write)

  • --deny-all — 阻止读取、写入、网络访问和环境变量

  • --deny-env — 阻止继承环境变量(仅传递 PATH、HOME、USER、SHELL、TERM、LANG)

  • --deny-net — 阻止所有网络访问

  • --deny-read — 阻止文件系统读取(系统库和工具目录仍可访问)

  • --deny-write — 阻止所有文件系统写入

  • --fresh-env — 绕过环境缓存并重新计算环境

  • --no-deps — 跳过自动依赖准备

  • --raw — 将后端安装命令的标准输入/标准输出/标准错误直接连接到终端,隐含启用 --jobs=1

  • -h --help — 打印帮助

示例:

$ mise exec node@20 -- node ./app.js  # 使用 node-20.x 启动 app.js
$ mise x node@20 -- node ./app.js     # 更短的别名

# 将命令指定为字符串:
$ mise exec node@20 [email protected] --command "node -v && python -V"

# 在不同目录中运行命令:
$ mise x -C /path/to/project node@20 -- node ./app.js