Linux Shell中拼接变量需直接相邻书写且注意边界与引号:双引号支持展开,单引号禁用;含字母数字时须用${}明确边界;分隔符和字面量应置于双引号内或紧邻变量。

在 Linux Shell 中拼接多个独立变量,核心原则是:**不加运算符、直接相邻书写,但必须注意变量边界和引号使用**。只要变量名能被清晰识别,Shell 就能正确展开并连接。
基础拼接:无空格直连
多个变量并排写在一起即可拼接,中间不能有空格,否则会被当作独立命令或参数:
-
# 正确写法
dir="/etc"<br>sub="yum.repos.d"<br>path=${dir}${sub}<br>echo "$path" # 输出 /etc/yum.repos.d -
# 错误写法(含空格)
path=${dir} ${sub} # 报错:/etc: command not found
带分隔符的拼接
若需插入固定字符(如斜杠、下划线、冒号),把分隔符和变量一起放在双引号内或紧邻变量书写:
user="alice"<br>host="server"<br>full="${user}@${host}"<br>echo "$full" # 输出 alice@serverbase="/var/log"<br>name="app"<br>ext="log"<br>file="${base}/${name}.${ext}"<br>echo "$file" # 输出 /var/log/app.log
混合字面量与变量
字符串字面量(纯文本)可与变量自由组合,推荐统一用双引号包裹,避免意外截断或空格问题:
prefix="v2.1"<br>suffix="-release"<br>ver="${prefix}${suffix}"<br>echo "$ver" # 输出 v2.1-releasedate=$(date +%Y%m%d)<br>logname="backup_${date}.tar.gz"<br>echo "$logname" # 输出类似 backup_20261010.tar.gz
注意事项:单引号 vs 双引号
单引号会完全禁用变量展开,双引号支持变量解析,拼接时务必避免误用单引号:
val="test"<br>echo "${val}ing" # 正确:testing<br>echo '${val}ing' # 错误:原样输出 ${val}ing- 变量名后紧跟字母或数字时,必须用花括号明确边界:
name="file"<br>echo "${name}1.txt" # 正确:file1.txt<br>echo "$name1.txt" # 错误:尝试展开不存在的变量 name1


















