在 Git Bash 中,如何修复“stdin 不是 tty”错误?

Dav*_*ave 6 stdin tty git-bash psql windows-10

我在 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
Run Code Online (Sandbox Code Playgroud)

当我查看数据库时,脚本尚未运行,这使我相信错误消息告诉了我原因,但我不确定它的含义或如何修复它。

小智 5

不要在 Windows 上使用重定向(一般情况下,不仅仅是在“git-bash”中)。

使用参数传递脚本文件-f

PGPASSWORD=$DB_PASSWORD psql -U${DB_USER} -f scripts/my-script.sql $DB_NAME
Run Code Online (Sandbox Code Playgroud)

  • 你能详细说明一下吗?虽然一般来说“不要使用……Windows”适合我的口味,但我可以并且确实经常在 Git Bash 中使用重定向。`psql` 有一个特殊的问题吗?或者我需要注意的其他陷阱?不过,我同意你的回答——简单直接几乎总是最好的。 (3认同)