You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统下Intellij外部工具运行sh文件提示Command not found怎么解决

问题原因

IntelliJ 运行外部工具时启动的子进程,不会默认加载你终端登录时自动读取的 shell 配置文件(如 /etc/profile、~/.bashrc 等),导致 fake-smtp-server 命令所在的目录未被包含在运行时的 PATH 环境变量中,因此抛出 Command not found 报错。

解决方案

以下三种方案任选其一即可:

方案1:脚本中使用命令的绝对路径

  1. 先在正常运行的 Ubuntu 终端中执行以下命令,获取 fake-smtp-server 的完整绝对路径:
    which fake-smtp-server
    
    终端会返回类似 /usr/bin/fake-smtp-server 或 /usr/local/bin/fake-smtp-server 的路径。
  2. 将脚本中的 fake-smtp-server 替换为上述查询到的完整路径即可,修改后脚本示例:
    echo 'Runs a fake smtp server'
    /usr/local/bin/fake-smtp-server
    

方案2:脚本开头补全环境变量

在脚本开头增加加载 shell 配置或补充 PATH 的逻辑,示例:

# 加载当前用户的bash配置,导入完整的环境变量
source ~/.bashrc
echo 'Runs a fake smtp server'
fake-smtp-server

也可以直接把命令所在目录追加到PATH中:

# 路径替换为你通过which查询到的命令所在的父目录
export PATH=$PATH:/usr/local/bin
echo 'Runs a fake smtp server'
fake-smtp-server

方案3:修改IntelliJ外部工具的环境变量配置

不需要修改脚本,直接在IntelliJ的外部工具配置页中找到「Environment variables」选项,将你终端中echo $PATH输出的完整值填入,或者在原有PATH值末尾追加fake-smtp-server所在的目录即可。

验证方法

可在脚本中增加一行echo $PATH,分别在终端和IntelliJ中运行脚本,对比两次输出的PATH差异,即可确认是否是环境变量缺失导致的问题。


内容的提问来源于stack exchange,提问作者César Castro Aroche

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:15:04