方案
$ VAR1 = test
$ VAR2 =测试
$ VAR3 = $ VAR1_ $ VAR2
$ echo $ VAR3
测试
我期望“test_testing”作为输出。为什么不工作?如何以“test_testing”格式输出? (使$ VAR1_ $ VAR2工作)
它是否将VAR3 = $ VAR1_ $ VAR2解释为VAR3 = $(VAR1_ $ VAR2)?
答案 0 :(得分:10)
尝试
$ echo ${VAR1}_${VAR2}
没有大括号,它会将组合解析为${VAR1_}${VAR2}
。由于您没有定义$VAR1_
变量,因此您只能看到$VAR2
的值。
如果您定义变量$VAR1_
:
$ VAR1_=another
$ echo $VAR1_$VAR2
anothertesting
答案 1 :(得分:2)
尝试:
VAR3="$VAR1"_"$VAR2"
它将VAR3=$VAR1_$VAR2
解释为$VAR1_ + $VAR2
---没有名为$ VAR1 _的变量_