我正在尝试将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
答案 0 :(得分:0)
由于下划线实际上是字母,因此bash无法知道变量名何时结束以及文字下划线开始。在这种情况下,引用变量的正确方法是使用${...}
,它明确地将名称与命令行的其余部分分隔开来:
sample1="${env_abr1}_${cnt_abr1}"
sample2=${env_abr2}_${cnt_abr3}
在两种情况下,名字都不需要特殊处理。正如您在评论中指出的那样,任何其他(从字面上看是有效的)非字母字符也可以这样做:
sample1="$env_abr1"_"$cnt_abr1"
sample2="$env_abr2"_"$cnt_abr3"