在宝塔面板安装 PostgreSQL 时遇到 pgsql_install.sh: 83: Syntax error: Bad fd number 错误,排查发现是我使用的系统 (Debian13) 默认的 /bin/sh 链接到了 dash(常见于 Ubuntu/Debian 系统),而安装脚本中使用了部分 dash 不支持的语法或重定向符号。
错误日志类似下面这样:
pgsql_install.sh: 83: Syntax error: Bad fd number
检索了一下,官方论坛在很早就出现了这个问题,但至今没有很好的解决,因此将解决方案在这里记录一下。
解决方法
可以通过将系统的默认 /bin/sh 临时或永久更改指向 bash 来解决该问题。
步骤 1:检查当前的 sh 指向
在终端执行以下命令:
ls -l /bin/sh
如果输出显示指向 dash(例如 /bin/sh -> dash),说明确实是这个原因。
步骤 2:将 sh 更改为 bash
执行下面命令将 /bin/sh 重新定向到 /bin/bash:
sudo mv /bin/sh /bin/sh.bk
sudo ln -s /bin/bash /bin/sh
步骤 3:重新在宝塔面板中安装
更改完成后,回到宝塔面板,重新卸载并再次尝试安装 PostgreSQL 插件及数据库。