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

Shell中将现有变量值赋值给新变量时新变量返回空值问题

问题根源

你的赋值逻辑完全写反了:
Shell 中变量名+=值的语法作用是将等号右侧的内容追加到左侧变量的现有值末尾,而非把左侧变量的值赋值给右侧变量。
你写的VAR1+="$MyVar"执行时,MyVar还没有被赋值,默认是空字符串,所以这段代码只是给VAR1拼接了一个空值,全程没有给MyVar做任何赋值操作,最终输出$MyVar自然为空。
你贴的执行日志中出现VAR1=为空,大概率是执行脚本前VAR1已经被清空,拼接空值后仍然保持空。

正确实现

1. 直接将VAR1的值赋值给新变量MyVar

VAR1="Hello World"
VAR2="Let's concatenate"

# 正确赋值:新变量在等号左侧,待取值的变量在右侧
MyVar="$VAR1"

echo "$VAR1"  # 输出 Hello World
echo "$MyVar" # 输出 Hello World,符合预期

2. 如需把VAR1的值追加到MyVar已有内容后

如果要实现拼接逻辑,把需要修改的变量放在+=左侧即可:

MyVar="初始内容"
VAR1="Hello World"

# 将VAR1的值追加到MyVar末尾
MyVar+="$VAR1"

echo "$MyVar" # 输出 初始内容Hello World

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:36:05