Atom本身不运行Shell脚本,仅编辑;执行依赖script插件调用系统bash/sh/zsh,需正确识别语言(右下角选Shell Script或Ctrl+Shift+L输入shell)、启用终端模式(Ctrl+I)、配置解释器绝对路径,三者缺一不可。

Atom 本身不运行 Shell 脚本,它只负责编辑;真正执行靠的是你系统里的 bash、sh 或 zsh,而 Atom 需要通过插件(主要是 script)来调用它们——配错路径、没开终端模式、语言识别失败,三者任一出问题,Ctrl+I 就像按在空气上。
怎么让 Atom 正确识别 .sh 文件并激活运行按钮
默认状态下,Atom 不会自动把无后缀或非标准后缀的文件当 Shell 脚本处理,script 插件也就不会响应快捷键或显示 ▶ 按钮。
- 右下角状态栏点击当前语言名(如
Plain Text),手动选Shell Script - 快捷键更高效:
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS),输入shell回车即可 - 永久绑定常见脚本后缀:进
Settings → Packages → script → Settings,在File Extensions栏填sh,bash,deploy,build(逗号分隔,全小写) - 如果文件叫
deploy(无后缀),即使内容全是#!/bin/bash,Atom 也默认无视——必须手动切语言或加后缀
为什么 Ctrl+I 没反应,或者点了就卡住
Ctrl+I 不是“运行”,而是“准备在终端里运行”的开关。它只起作用的前提是:语言已识别为 Shell、文件已保存、终端面板未被隐藏。
- 确保文件已保存(未保存时
script直接拒绝执行) - 按
View → Toggle Terminal唤出内置终端面板(它可能被最小化或关闭) - 检查
script插件设置页是否勾选了Use Terminal—— 切勿勾选Use Script Panel,后者不支持read -p或交互式输入 - 若仍卡住,大概率是终端没加载你的 shell 配置:在 Atom 内置终端里先手动执行
source ~/.zshrc(macOS/Linux)或source ~/.bashrc,再试
运行报 command not found: bash 或 sh 怎么办
这不是插件坏了,是 Atom 启动的子进程找不到 bash 命令——根本原因是它没继承你终端里的 PATH,尤其从桌面图标启动时。
- 先在系统终端确认真实路径:
which bash或type -p sh,复制输出结果(如/opt/homebrew/bin/bash) - 进
script → Settings,找到Command字段,粘贴完整路径(Windows 写成C:/Program Files/Git/bin/bash.exe,反斜杠用正斜杠或双写) - 更稳的做法:别从桌面图标启动 Atom,改用终端执行
atom .—— 这样它能完整继承当前 shell 的环境变量和PATH - macOS 用户若用
pyenv或asdf管理多版本,注意~在 Atom 设置中不展开,必须写成绝对路径,如/Users/yourname/.asdf/shims/bash
如何让脚本在正确目录下运行,避免 cd 报错
script 插件默认工作目录是 Atom 启动时的路径,不是当前文件所在目录。所以 ./config.json 很可能读不到,cd .. 也可能失效。
- 最简单:在脚本开头加一句
cd "$(dirname "$0")"(Bash),强制切换到脚本自身所在目录 - 不改脚本?每次运行前,在 Atom 内置终端里手动
cd到目标目录,再按Ctrl+Shift+B - 进
script → Settings,开启Use Current File Path as Working Directory(部分新版script支持,但非默认启用) - 注意:终端面板复用,上次
cd的位置会影响下次运行——别以为点一次就能永远生效
真正容易被忽略的是:Atom 从不校验 Shell 语法是否合法,也不拦截 set -e 或 exit 1;它只管把命令扔给系统 shell,然后原样吐出 stdout/stderr。所以调试时别只盯着 Atom 输出,得随时切回终端看 bash -n script.sh 是否有语法错误,或加 set -x 看每步执行过程。

















