Unable To Concatenate 2 Linux Variables Into 1
本问题已经有最佳答案,请猛点这里访问。
我试图将LinuxTectiassh中的两个变量连接到一个变量中,由
我试图通过
1 | sample1="$var1_$var2" |
或
1 | sample1="$var1 _ $var2" |
我尝试直接连接,例如:
1 | sample1=$var1_$var2 |
希望能得到帮助!
1 2 3 4 5 6 7 8 9 | 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 |
输出:
1 2 | _ ab ef |
因为下划线实际上是字母,所以bash无法知道变量名何时结束,文字下划线何时开始。引用变量的正确方法是使用
1 2 | sample1="${env_abr1}_${cnt_abr1}" sample2=${env_abr2}_${cnt_abr3} |
在这两种情况下,第二个名字不需要特殊处理。正如您在评论中指出的那样,任何其他(语义上有效的)非字母字符也可以:
1 2 | sample1="$env_abr1"_"$cnt_abr1" sample2="$env_abr2"_"$cnt_abr3" |