【发布时间】:2017-08-02 08:22:10
【问题描述】:
我试图在一个字符串中使用多个变量,但是在每个变量之后,字符串又重新开始并覆盖了开头:
#!/bin/bash
var1="ABCDEFG"
var2="hi"
echo "${var1} ${var2}"
echo "$var1 $var2"
应该输出
ABCDEFG hi
但两个回显输出
hiDEFG
另外,如果我只使用一个变量并将文本放在变量之后,它仍然会覆盖...
这里还有一个例子: https://stackoverflow.com/a/17862845/8363344
bla=hello
laber=kthx
echo "${bla}ohai${laber}bye"
这应该输出:
helloohaikthxbye
但它输出:
byeikthx
我开始使用 .sh
sudo bash path/bash.sh
但是使用 sudo sh 就不行了...
我使用 Ubuntu 16.04(作为虚拟机)
谢谢 丹尼斯
【问题讨论】:
-
这很奇怪。您能否仅从 shell(而不是脚本)输出相同的命令。 #> echo "${var1} ${var2}"
-
刚试了下,在shell里运行正常,输出“ABCDEFG hi”。