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

使用gcloud认证登录Postgres psql在zsh中报错,求正确语法

在Zsh中正确执行PostgreSQL登录命令的解决方法

问题描述

在Bash中可正常运行的命令:

PGPASSWORD=$(gcloud sql generate-login-token) psql -h xx.xxx.xx.xxx -U user@domain.com --no-password dbname

在Zsh中执行时出现错误:

zsh: parse error near `time'

解决方法

Zsh不支持VAR=$(command) command这种临时环境变量绑定的语法(Bash支持该前置变量赋值方式),可改用以下两种方式之一:

方式一:用env命令显式设置环境变量

env PGPASSWORD=$(gcloud sql generate-login-token) psql -h xx.xxx.xx.xxx -U user@domain.com --no-password dbname

方式二:使用Zsh子shell环境赋值

(export PGPASSWORD=$(gcloud sql generate-login-token); psql -h xx.xxx.xx.xxx -U user@domain.com --no-password dbname)

原因说明

Bash允许在命令前直接前置环境变量赋值,仅对当前命令生效;但Zsh的语法解析规则不同,这种写法会被误解析导致语法错误。使用env命令或子shell内导出变量的方式,可在Zsh中实现临时给单个命令设置环境变量的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:53:10