Windows环境下命令行无法运行Shell脚本?如何运行?
在Windows原生的命令提示符(CMD)里确实没法直接运行Shell脚本,因为CMD是Windows专属的命令解释器,完全不识别Shell的语法逻辑。给你几个实用的解决方案,按上手难度和实用性排序:
1. 启用Windows Subsystem for Linux(WSL)——最推荐的方案
这是微软官方推出的解决方案,相当于在Windows系统里内嵌了一个完整的Linux子系统,能完美支持所有Shell脚本的运行:
- 打开管理员模式的PowerShell,执行命令:
wsl --install - 重启电脑后,按照提示设置Linux的用户名和密码
- 打开安装好的Linux发行版(比如默认的Ubuntu),直接在终端里运行你的脚本:
./your_script.sh - 如果脚本存放在Windows的文件夹里,WSL会自动挂载Windows的磁盘,路径一般是
/mnt/c/Users/你的用户名/脚本所在文件夹,用cd命令切换过去就能访问
2. 使用Git Bash——轻量快捷方案
如果你已经安装了Git,那它自带的Git Bash就是一个轻量级的Shell环境,不用额外安装大型软件:
- 找到你的Shell脚本文件,右键点击它,选择「Git Bash Here」
- 在弹出的Git Bash窗口里,直接执行:
./your_script.sh - 要是还没装Git,安装时选默认配置就行,安装完成后Git Bash会自动出现在右键菜单里
3. 安装Cygwin——专业模拟环境
Cygwin是一个在Windows上模拟Linux系统调用的工具,适合需要完整Linux工具链的场景:
- 下载Cygwin的安装包,运行后按照向导选择需要的组件(至少要选
bash、coreutils这些基础工具) - 安装完成后打开Cygwin终端,就像在Linux系统里一样运行:
./your_script.sh - 你可以把脚本放在Cygwin的家目录,或者直接访问挂载的Windows文件夹(路径一般是
/cygdrive/c/...)
4. PowerShell兼容性模式——应急备选
PowerShell对部分Shell命令有有限的支持,复杂脚本可能会出错,适合临时应急:
- 打开PowerShell,执行命令:
bash your_script.sh - 注意:这个方法需要你已经启用了WSL,否则PowerShell会提示找不到
bash命令
几个额外的小提示
- 确保你的Shell脚本开头有Shebang行:
#!/bin/bash,这样解释器才知道用bash来执行脚本 - 给脚本添加执行权限:在WSL/Git Bash/Cygwin里执行
chmod +x your_script.sh,否则可能会提示权限不足 - 不要用Windows记事本编辑Shell脚本!记事本会把换行符改成Windows格式的
\r\n,Shell无法识别,建议用VS Code、Notepad++等编辑器,保存时选择「LF」换行符
内容的提问来源于stack exchange,提问作者cydia




