shell脚本执行报permission denied需先chmod +x赋予执行权限,或在code runner中将executormap的"shellscript"改为"bash $filename"绕过权限检查。

Shell脚本执行报 Permission denied 怎么办
Code Runner 默认用 ./script.sh 方式运行 .sh 文件,但 Linux/macOS 下文件必须有可执行权限才能直接调用。没设权限就跑,终端会直接报 Permission denied,不是插件坏了,是系统拦的。
- 临时解决:终端进脚本目录,执行
chmod +x script.sh - 一劳永逸:改
code-runner.executorMap,把"shellscript": "./$fileName"换成"shellscript": "bash $fileName"—— 显式调用bash解释器,绕过权限检查 - 注意:
bash $fileName会忽略脚本首行的#!/usr/bin/env zsh等 shebang,只按bash语义解析
Python 找不到模块(ModuleNotFoundError)怎么配路径
Code Runner 不继承你终端里激活的虚拟环境,它只认 PATH 或你硬写的绝对路径。所以即使你在终端里 source .venv/bin/activate 后能 import 成功,Code Runner 还是可能报错。
- 打开
settings.json,找到code-runner.executorMap中的"python"项 - 把默认的
"python -u"替换成虚拟环境里真实的 Python 路径,例如:"python": "/Users/me/project/.venv/bin/python -u"(macOS/Linux)或"python": "D:\project\.venv\Scripts\python.exe -u"(Windows) - 路径必须存在且可执行;conda 环境同理,填
~/miniconda3/envs/myenv/bin/python这类完整路径 - 改完保存,建议重载窗口(
Ctrl+Shift+P→Developer: Reload Window)
Node.js 脚本一闪而过、看不到输出
这不是代码问题,是 Code Runner 默认在非交互式上下文中执行命令,进程结束终端就关了。尤其带 readline() 或需要手动输入的脚本,根本卡不住。
- 必须开启
code-runner.runInTerminal(设为true),否则输出进 Output 面板,但 stdin 不可用 - executorMap 里别只写
"node $fileName";如果脚本依赖相对路径(比如require('./config.json')),得加cd $dir &&前缀,否则process.cwd()是 VSCode 启动目录,不是文件所在目录 - Windows 用户写路径时统一用正斜杠
/或双反斜杠\,单反斜杠会被 JSON 解析吃掉
编译型语言(C/C++)生成的 .exe 怎么自动清理
Code Runner 不自带清理逻辑,每次编译都会残留 main.exe 或 a.out,目录很快变脏。手动删不是办法,得在 executor 命令里串上删除操作。
- C 语言示例:
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt.out && ./$fileNameWithoutExt.out && rm $fileNameWithoutExt.out"(Linux/macOS) - Windows 示例:
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt.exe && $fileNameWithoutExt.exe && del $fileNameWithoutExt.exe" - 注意顺序:先编译、再运行、最后删;如果运行失败,
&&会中断后续,避免误删成功产物 - 不要用
rm *.out这类宽泛匹配,容易删错其他文件
--port 3000,或者同一项目里切 Python 3.9 和 3.11。Code Runner 的 executorMap 不支持运行时选参数或动态换解释器,这类需求得转向 tasks.json 或调试配置。











