在Git Bash中,如何修复“stdin is not a tty”错误?

5
我在 Windows 10 上使用 Git Bash。我想将一个 SQL 文件导入到我的本地 PostGres 12 数据库中以执行。我尝试了以下命令:
$ PGPASSWORD=$DB_PASSWORD psql -U${DB_USER} $DB_NAME < scripts/my-script.sql
stdin is not a tty

当我查看我的数据库时,发现脚本并没有运行,这让我相信错误提示信息告诉了我原因,只是我不确定它的含义和如何解决。

你尝试过使用 winpty 吗?在发帖之前,你有搜索其他相关的答案吗? - Paul Hodges
1个回答

5
不要在Windows上使用重定向(通常情况下,不仅限于 "git-bash")。使用-f参数传递脚本文件。
PGPASSWORD=$DB_PASSWORD psql -U${DB_USER} -f scripts/my-script.sql $DB_NAME

3
你能详细说明一下吗?虽然总的来说,“不要使用...Windows”符合我的口味,但我经常在Git Bash中使用重定向。 psql 有什么特别的问题吗?或者还有其他需要注意的陷阱吗?尽管如此,我同意你的答案 - 简单和直接几乎总是最好的选择。 - Paul Hodges
这个命令在 Git Bash 上对我不起作用。我收到一个“psql: warning: extra command-line argument "-f" ignored”的警告,然后我登录到了正常的 psql 会话中。 - Dave
@Dave:抱歉,$DB_NAME必须是最后一个参数。 - user330315

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接