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

Windows命令行运行含SQL命令的.sh文件时报psql未找到如何解决?

问题根因

你在PowerShell中能正常识别psql命令,是因为你配置的是Windows系统的环境变量,加载的是Windows版本的PostgreSQL客户端。而你执行.sh脚本时,实际是调用WSL内的Ubuntu bash环境执行代码,默认状态下WSL的Ubuntu环境既没有安装psql客户端,也没有继承Windows的PATH环境变量,因此无法找到对应命令。

解决方案

你可以根据自己的使用需求任选以下一种方案处理:

方案1:在WSL的Ubuntu中安装psql客户端

  • 打开WSL的Ubuntu终端,依次执行以下命令完成安装:
sudo apt update
sudo apt install -y postgresql-client
  • 安装完成后在WSL终端执行psql --version,确认命令能被正常识别后,再运行你的bash脚本即可。

方案2:开启WSL的Windows PATH继承,直接使用Windows版psql

如果你不想在WSL中重复安装PostgreSQL客户端,可以通过修改WSL配置实现PATH继承:

  1. 打开WSL的Ubuntu终端,执行命令编辑wsl配置文件:
    $ sudo nano /etc/wsl.conf
  2. 在文件中添加如下配置:

[interop]
appendWindowsPath = true

  1. 按Ctrl+O保存文件,按Ctrl+X退出编辑器。
  2. 关闭所有WSL窗口,回到PowerShell执行wsl --shutdown重启WSL使配置生效。
  3. 重启完成后进入WSL终端,执行psql --version确认可正常识别即可。
验证方式

处理完成前你可以先直接打开WSL的Ubuntu终端执行psql --version,如果也提示找不到命令,即可确认是上述原因导致的问题,按对应方案处理即可。

内容的提问来源于stack exchange,提问作者hco_3

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:57:04