字符串在每个变量 [Bash] 之后再次开始



我正在尝试在一个字符串中使用多个变量,但是在每个变量之后,字符串再次开始并覆盖开头:

#!/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(作为虚拟机(

谢谢 丹尼斯

它可能是输入字符串中的回车符。

您可以将echo通过管道传输到tr命令以将其从输出字符串中删除:

echo "${var1} ${var2}" | tr -d 'r'

最新更新