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

Bash脚本单行出现多个`var=`赋值的语法含义是什么

Shell语法相关问题解答

你提到的代码片段是标准Shell语法:

PGHOST= PGHOSTADDR= "${query_runner[@]}" "$@"

两个var=写法的作用

这是Shell的临时环境变量赋值语法,不存在将后续命令执行结果赋值给变量的逻辑:

  • 命令前的变量名=值声明仅对紧随其后的目标命令进程生效,不会修改当前Shell的全局环境变量
  • 这里PGHOST=、PGHOSTADDR=是显式将这两个变量设为空值,仅作用于后续执行的查询命令,目的是强制PostgreSQL客户端使用本地Unix套接字连接,避免外部传入的TCP连接配置干扰脚本内部的初始化逻辑
  • 后续的${query_runner[@]}是展开预先定义的查询命令数组,直接作为要执行的命令主体运行

$@的含义

$@是Shell内置的特殊位置参数变量:

  • 它会展开为当前脚本/函数接收到的所有入参,且每个参数会保留原始的引号边界,不会被空格、特殊字符意外拆分
  • 在此处的作用是将传入给entrypoint脚本的额外参数透传给查询命令,实现自定义参数传递

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:57:03