字符串在每个变量后重新开始[Bash]

时间:2017-08-02 08:22:10

标签: linux bash shell ubuntu

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

#!/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来说它不起作用......

我使用Ubuntu 16.04(作为虚拟机)

由于 丹尼斯

1 个答案:

答案 0 :(得分:2)

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

您可以将echo传递给tr命令,将其从输出字符串中删除:

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