带有变量和字符串的echo命令

时间:2016-05-05 05:15:36

标签: linux bash shell unix

我有3个变量,我试图插入到包含字符串的echo命令中。

这就是我所拥有的:

1= "test1"
2= "test2"
3= "test3"

FileName= "WEATHERMAP"_"$1"_"STATE"_"$2"_"CITY"_"$3" 

echo $FileName

我希望它echo WEATHERMAP_test1_STATE_test2_CITY_test3我取而代之的是WEATHERMAP__STATE__CITY_

我知道这与underscore有关,不幸的是,我需要underscore

我见过的唯一例子是将两个变量放在一起,或者以variable后跟一个字符串开始。

3 个答案:

答案 0 :(得分:1)

不要使用数字启动变量名称。

$ a="test1"
$ b="test2"
$ c="test3"
$ FileName="WEATHERMAP_${a}_STATE_${b}_CITY_${c}"
$ echo "$FileName"
WEATHERMAP_test1_STATE_test2_CITY_test3
$

答案 1 :(得分:0)

我猜你默认使用bash,在这种情况下允许使用字母,数字和下划线,但是你不能用数字来启动变量名。您可以通过以下代码实现: -

a="test1"
b="test2"
c="test3"

FileName="WEATHERMAP"_"$a"_"STATE"_"$b"_"CITY"_"$c"
## Also, can assign as below :
## FileName="WEATHERMAP_${a}_STATE_${b}_CITY_${c}"

echo $FileName

答案 2 :(得分:0)

数值变量保留用于shell内部目的,$ 0包含脚本文件名,$ 1 - 第一个脚本参数,如./script.sh first-argument,$ 2 - second script argument等。