我正在编写(我的第一个)shell 脚本,并且为了灵活性想使用变量。这是我根据搜索的不同示例编写的脚本的一部分:
#!/bin/sh
#
jar_path="/sbclocal/apps/blablabla"
echo $jar_path # <- OK
echo ${jar_path} # <- OK
echo $jar_path/jar # <- /jarlocal/apps/blablabla
echo "$jar_path/jar" # <- /jarlocal/apps/blablabla
echo ${jar_path}/jar # <- /jarlocal/apps/blablabla
echo "${jar_path}/jar" # <- /jarlocal/apps/blablabla
在最后一行,我希望得到“/sbclocal/apps/blablabla/jar”,但我得到的是“/jarlocal/apps/blablabla”!因此,变量字符串的开头不是连接,而是替换为常量部分,我希望这最终!
jar 参数内部还有更复杂的串联,它以我无法确定的方式被破坏,但我想问题是一样的。
请问这里有什么问题吗?
UPD:编辑显示我尝试过的不同方法,都具有相同的结果。
UPD:我也尝试了2个变量,奇怪的是第一个没有显示,就像它是空的,当我写类似的东西时
echo $var1$var2
echo ${var1}${var2}
echo ${var1}+${var2}
这太疯狂了,我想我会放弃并使用旧的普通复制粘贴,因为这样会快得多。