我有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
后跟一个字符串开始。
答案 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等。