我试图在一个字符串中使用多个变量,但在每个变量之后,字符串将重新开始并覆盖开始:

#!/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

我开始用
sudo bash path/bash.sh

但是用sudo-sh,效果不太好…
我使用ubuntu 16.04(作为虚拟机)
谢谢
丹尼斯

最佳答案

它可能是输入字符串中的回车字符。
您可以将echo通过管道发送到tr命令以将其从输出字符串中删除:

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

关于linux - 在每个变量之后字符串再次开始[Bash],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45455364/

10-14 13:23
查看更多