You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Shell脚本作为Mix别名运行?已尝试方案均失败

解决Mix别名运行Shell脚本失败的问题

我来帮你搞定这个问题!你遇到的错误根源很简单:当你在Mix别名里直接写./scripts/test.sh或者scripts/test.sh时,Mix会默认把这些字符串当成Mix任务名称去查找,但它根本不是一个Mix任务,自然就会报找不到任务的错误了。

要让Mix正确执行外部Shell脚本,你需要用Mix内置的cmd任务来包裹你的脚本命令,具体写法如下:

正确的别名定义

defp aliases do
  [
    test: ["cmd ./scripts/test.sh"]
  ]
end

如果你的脚本已经设置了执行权限(可以通过chmod +x scripts/test.sh给脚本加上执行权限),也可以简化成:

defp aliases do
  [
    test: ["cmd scripts/test.sh"]
  ]
end

额外实用提示

  • 确保脚本路径是相对于你的Elixir项目根目录的,不然Mix会找不到脚本
  • 如果脚本需要接收参数,直接在命令后面追加即可,比如:
    test: ["cmd ./scripts/test.sh --verbose"]
    
  • 要是你需要在执行脚本前先运行其他Mix任务,也可以把它们放到同一个别名列表里,比如先编译项目再跑测试脚本:
    test: ["compile", "cmd ./scripts/test.sh"]
    

内容的提问来源于stack exchange,提问作者anthonator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:17:27