phpstorm需启用shell scripts插件、配置绝对路径解释器、将参数填入script options、设绝对working directory,并注意其不继承shell环境。

PhpStorm 本身不内置 Shell 脚本专用编辑器,但靠 Shell scripts 插件就能完成基础编写、运行和调试——关键不是“有没有插件”,而是插件开了没、解释器路径对不对、参数传到哪一栏。
Shell scripts 插件没启用,右键根本不会出现 Run
这是最常卡住人的第一步。WebStorm/PhpStorm 默认启用该插件,但一旦被手动禁用,右键菜单里就彻底消失 Run 'xxx.sh' 选项,后续所有配置都白搭。
- 按
Ctrl+Alt+S(Windows/Linux)或Cmd+,(macOS)打开 Settings - 进入
Plugins→ 搜索Shell scripts - 确保复选框已勾选;若灰色不可点,说明插件已损坏,可尝试卸载后重启再重装
- 重启 PhpStorm 后,右键任意
.sh文件,才会有Run 'xxx.sh'菜单项
Interpreter path 必须填绝对路径,填 bash 或 sh 就失败
PhpStorm 不会查 $PATH,它只认硬编码的完整路径。填错直接报 Cannot run program "bash": error=2, No such file or directory,哪怕你在终端里 which bash 出来能跑也没用。
- macOS:常用
/bin/zsh(系统默认)或/opt/homebrew/bin/bash(Homebrew 安装) - Linux:先在终端执行
which bash,复制输出结果,如/usr/bin/bash - Windows + Git Bash:
"C:\Program Files\Git\bin\bash.exe"(含英文双引号,路径有空格必须包) - 脚本第一行是
#!/usr/bin/env bash?别依赖它——PhpStorm 运行时压根不读 shebang,全靠这个字段
传参必须填 Script options,Application parameters 是无效的
很多用户把参数写进 Application parameters 栏,结果脚本里 $1 始终为空。Application parameters 是给 Java/Node.js 等进程用的,bash 脚本只认 Script options。
- 假设脚本定义为
./deploy.sh staging --force,就在Script options里填staging --force(空格分隔,不加./deploy.sh) - 脚本内用
$1、$2、$@正常接收,和终端执行行为一致 - 如果填错位置,
$#会是 0,条件判断全跳过,且无任何错误提示,静默失效最难排查
Working directory 设成绝对路径,别靠脚本里 cd
脚本开头写 cd ./dist 或 cd ../backend 很常见,但在 PhpStorm 的 Run 配置中,这些 cd 可能被忽略、执行环境不一致,尤其涉及 tar、scp、rsync 时路径错乱。
- 删掉脚本里所有
cd和相对路径逻辑,只保留纯命令,例如tar -zcvf dist.tar.gz dist/ - 在 Run Configuration 的
Working directory字段填绝对路径,如/Users/me/my-project - 这样
dist/就真指项目根目录下的dist/,否则你会遇到tar: dist/: Cannot stat: No such file or directory
真正容易被忽略的是:PhpStorm 的 Shell 运行机制和终端完全隔离——它不加载 ~/.zshrc、不继承当前 Terminal 的 PATH、不触发登录 shell 流程。想让命令找到,要么补全 PATH 到 Environment variables,要么直接写绝对路径调用二进制,比如用 /opt/homebrew/bin/php 代替 php。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










