Windows 系统 上尝试直接运行 .sh(Shell 脚本)文件

发布于:2025-08-14 ⋅ 阅读:(18) ⋅ 点赞:(0)

这个错误是因为你在 Windows 系统 上尝试直接运行 .sh(Shell 脚本)文件,而 Windows 默认不支持 Unix/Linux 的 Shell 命令。以下是几种解决方案:


解决方案 1:使用 Git Bash(推荐)

如果你安装了 Git for Windows,它会自带 Git Bash,可以运行 .sh 文件:

  1. 修改 package.json
    "scripts": {
      "dev": "bash ./scripts/run_dev.sh --env=dev"
    }
    
  2. 运行
    npm run dev
    

解决方案 2:转换为 Windows 批处理文件(.bat)

如果不想依赖 Git Bash,可以 .sh 脚本转换成 .bat 脚本

  1. 新建 run_dev.bat(放在 ./scripts/ 目录下):
    @echo off
    REM 这里是原 run_dev.sh 的命令,改成 Windows 可执行的格式
    node server.js --env=dev
    
  2. 修改 package.json
    "scripts": {
      "dev": ".\\scripts\\run_dev.bat --env=dev"
    }
    
  3. 运行
    npm run dev
    

解决方案 3:使用 WSL(Windows Subsystem for Linux)

如果你使用 WSL(适用于 Linux 的 Windows 子系统),可以这样运行:

  1. 修改 package.json
    "scripts": {
      "dev": "wsl ./scripts/run_dev.sh --env=dev"
    }
    
  2. 运行
    npm run dev
    

解决方案 4:使用 shx(跨平台 Shell 命令)

  1. 安装 shx
    npm install --save-dev shx
    
  2. 修改 package.json
    "scripts": {
      "dev": "shx ./scripts/run_dev.sh --env=dev"
    }
    
  3. 运行
    npm run dev
    

解决方案 5:直接使用 Node.js 替代 Shell 脚本

如果 run_dev.sh 只是运行 Node.js 命令,可以直接在 package.json 里写:

"scripts": {
  "dev": "node server.js --env=dev"
}

然后运行:

npm run dev

总结

方案 适用场景 备注
Git Bash 已安装 Git for Windows 推荐,最接近 Linux 环境
.bat 转换 纯 Windows 环境 需手动改脚本
WSL 已安装 WSL 适合 Linux 兼容环境
shx 需要跨平台支持 需额外安装
直接 Node 命令 脚本较简单 无需 Shell

推荐做法

  • 个人开发Git Bashbash ./scripts/run_dev.sh
  • 团队项目提供 .bat.sh 双版本,或者用 shx 跨平台支持

这样,你的 npm run dev 就能在 Windows 上正常运行了! 🚀


网站公告

今日签到

点亮在社区的每一天
去签到