Notepad++如何运行Shell脚本_WSL环境集成教学【方案】
Notepad++借助NppExec插件调用WSL执行Shell脚本,核心用wslpath-u转换Windows路径,以source绕过权限检查。需将换行符改为LF,取消安全保存防inode变更,注意WSL发行版名大小写敏感。
先说几个核心判断:Notepad++ 本身不运行 Shell 脚本,它只是个编辑器;真正执行脚本的是 WSL 或 Git Bash。关键不是“让 Notepad++ 运行”,而是“在编辑完后,用 WSL 环境立刻执行”。所有失败案例几乎都卡在这一步的路径、权限或换行符上。
怎么从 Notepad++ 直接调用 WSL 执行当前脚本
别用 cmd /k 或 bash -c 拼路径——WSL 对 Windows 路径解析极敏感,空格、反斜杠、驱动器大小写都会崩。正确做法是让 WSL 自己把 Windows 路径转成 Linux 路径:

- 安装 NppExec 插件(Plugins → Plugins Admin)
- Plugins → NppExec → Execute,输入以下命令(一行):
cd "$(CURRENT_DIRECTORY)" && wsl -e bash -c "source $(wslpath -u '$(FULL_CURRENT_PATH)')"
- 保存为
run_in_wsl,绑定快捷键(如 Ctrl+Shift+B) wslpath -u是核心:它把C:xxxscript.sh转成/mnt/c/xxx/script.sh,避免手动拼错- 用
source而非./script.sh,绕过执行权限检查(适合调试阶段)
为什么脚本在 WSL 里报 Permission denied 或 /bin/bash^M 错误
这两个错误出现频率最高,且常被当成“脚本写错了”——其实和代码无关:
Permission denied:WSL 默认不继承 Windows 的文件执行位。即使你在 Notepad++ 里改了内容,chmod +x不会自动生效。解决方法:
– 在 WSL 终端中手动执行chmod +x /mnt/c/path/to/script.sh
– 或在 NppExec 命令里加一句:wsl -e chmod +x $(wslpath -u '$(FULL_CURRENT_PATH)')/bin/bash^M: bad interpreter:Notepad++ 默认用 CRLF(rn)保存,^M就是r。WSL 的sh把它当非法字符。必须在 Notepad++ 中强制转为 LF:
– 编辑时菜单栏 → Edit → EOL Conversion → Unix (LF)
– 设置 → 首选项 → 新建 → UTF-8 无 BOM + 默认 EOL 设为 Unix
如何让 Notepad++ 编辑的文件实时被 WSL 感知(尤其用 inotify 或 git)
你点了保存,但 inotifywait 不触发、git status 不显示修改——这不是延迟,是 Notepad++ 的“安全保存”机制在作祟:
- Notepad++ 默认启用“以安全方式保存”:先写临时文件,再原子替换原文件。WSL 的
wsl$路径下,这会导致 inode 变更,旧句柄失效 - 解决方法:设置 → 首选项 → 备份与还原 → 取消勾选“以安全方式保存”(仅对 WSL 路径有效;本地 Windows 文件仍建议保留)
- 另一个隐藏原因:文件属主是
root,而当前 WSL 用户没写权限。Notepad++ 静默失败,不提示。可在 WSL 中运行ls -l $(wslpath -u '$(FULL_CURRENT_PATH)')确认权限,必要时sudo chown $USER:$USER
最易被忽略的点:WSL 发行版名称大小写敏感。wsl$Ubuntu-22.04 和 wsl$ubuntu-22.04 是两个不同路径;wsl -l -v 输出的名称必须一字不差地用于 wslpath 或 UNC 路径。别靠记忆,每次不确定就查一遍。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















