无法将2个Linux变量合并为1个

16 浏览
0 Comments

无法将2个Linux变量合并为1个

这个问题已经有答案了

如何在Bash中连接字符串变量

在Bash中使用下划线“_”时文件名未正确打印 [重复]

我正在尝试将两个变量在linux tectia SSH中连接为一个变量,用\"_\"隔开。由于某种原因,只有其中一个变量被打印出来。

我尝试通过\" \"连接,例如:

sample1="$var1_$var2"

sample1="$var1 _ $var2"

我也尝试直接连接,例如:

sample1=$var1_$var2

感激任何给予帮助的人!

cnt_abr1=ab
cnt_abr2=cd
cnt_abr3=ef
env_abr1=a
env_abr2=b
sample1="$env_abr1_$cnt_abr1"
sample2=$env_abr2_$cnt_abr3
echo $sample1
echo $sample2

输出:

 _ ab
ef

admin 更改状态以发布 2023年5月25日
0
0 Comments

由于下划线实际上可以被视为字母,bash无法确定变量名何时结束以及您的下划线字面意义何时开始。在这种情况下,引用变量的正确方式是使用${...},它可以无歧义地界定名称与命令行的其余部分:

sample1="${env_abr1}_${cnt_abr1}"
sample2=${env_abr2}_${cnt_abr3}

在这两种情况下,第二个名称不需要特殊处理。正如您在评论中指出的那样,任何其他(语义上有效的)非字母字符也可以使用:

sample1="$env_abr1"_"$cnt_abr1"
sample2="$env_abr2"_"$cnt_abr3"

0