Bash和变量

时间:2011-07-11 15:54:23

标签: bash

方案

$ VAR1 = test

$ VAR2 =测试

$ VAR3 = $ VAR1_ $ VAR2

$ echo $ VAR3

测试

我期望“test_testing”作为输出。为什么不工作?如何以“test_testing”格式输出? (使$ VAR1_ $ VAR2工作)

它是否将VAR3 = $ VAR1_ $ VAR2解释为VAR3 = $(VAR1_ $ VAR2)?

2 个答案:

答案 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 _的变量_