String bash 3.2.57(macOS)中的字符串连接
我的目标是连接两个字符串 下面是我的bash脚本的复制粘贴:String bash 3.2.57(macOS)中的字符串连接,string,bash,macos,concatenation,String,Bash,Macos,Concatenation,我的目标是连接两个字符串 下面是我的bash脚本的复制粘贴: str1="Hello" str2="World" str3=$str1$str2 echo $str3 预期的输出是HelloWorld,但我得到的是World 当我在终端运行它时,它工作正常 下面是我在脚本上运行cat-v时的输出: str1="Hello"^M str2="World"^M str3=$str1$str2^M echo $str3^M 我遗漏了什么吗?这可能是因为您在$str1末尾有一个回车(\r)。我得到了
str1="Hello"
str2="World"
str3=$str1$str2
echo $str3
预期的输出是HelloWorld
,但我得到的是World
当我在终端运行它时,它工作正常
下面是我在脚本上运行cat-v
时的输出:
str1="Hello"^M
str2="World"^M
str3=$str1$str2^M
echo $str3^M
我遗漏了什么吗?这可能是因为您在
$str1
末尾有一个回车(\r
)。我得到了与以下相同的输出:
#!/bin/bash
str1="Hello"$'\r'
str2="World"
str3=$str1$str2
echo $str3
在MSWin计算机上创建脚本时经常会发生这种情况
它打印Hello,但随后\r
将光标移回行首,并用World覆盖Hello
您可以通过运行十六进制转储或
cat-v来验证它,这可能是因为在$str1
末尾有回车符(\r
)。我得到了与以下相同的输出:
#!/bin/bash
str1="Hello"$'\r'
str2="World"
str3=$str1$str2
echo $str3
在MSWin计算机上创建脚本时经常会发生这种情况
它打印Hello,但随后\r
将光标移回行首,并用World覆盖Hello
您可以通过运行十六进制转储来验证它,或者cat-v
str1
的定义是否以windows行结尾?str1的定义是否以windows行结尾?谢谢,请参阅更新后的问题以及cat-v
的输出@EtienneMartin:是的,就是这样。删除回车符。你就是@choroba,在我的编辑器中将行尾更改为unix解决了这个问题。谢谢,请参阅更新的问题,输出为cat-v
@EtienneMartin:是的,就是这样。移除回车符。你是@choroba的人,在我的编辑器中将行尾更改为unix解决了这个问题。