我正在尝试执行非交互式 postgres 命令。

PGPASSWORD=$PGPASS psql -h 127.0.0.1 -U postgresql -d $PGDB --command "select count(*) from services"
这给了我这个回应。

我读过这可能是因为终端/bash 试图将每个参数分解为 --command/-c 作为它自己的参数。
我也试过这个:
PSQLARGS=(-h 127.0.0.1 -U postgresql -c )
PSQLARGS+=("select count(*) from services;")
PSQLARGS+=(${PGDB})
PGPASSWORD=$PGPASS psql "${PSQLARGS[@]}"
某种强制终端知道它是一个参数的方法,这也不起作用。

最佳答案

在我看来 $PGDB 是空的,所以 psql 认为 --command 是数据库的名称。

关于bash - psql : warning: extra command-line argument "from" ignored,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56706631/

10-16 20:29