在bash中连接两个变量

时间:2014-03-15 04:52:21

标签: bash concatenation

我想连接两个变量,但似乎有一些覆盖。

#!/bin/bash
NUMBER1=$(seq 1 900 | sort -R | head -1)
FIRST=$(sed -n ''$NUMBER1'p' names.txt)
echo ${FIRST}
echo "${FIRST}${NUMBER1}"

其中names.txt是名称列表。 例如,当我运行此代码时,我得到输出为

  

GREGORIA

     

159goria

注意$ FIRST被$ NUMBER1部分覆盖。

应该是正确的输出,

  

GREGORIA

     

Gregoria159

有人可以帮帮我吗? 感谢

1 个答案:

答案 0 :(得分:2)

您的names.txt文件有Windows行结尾,CR-LF。 CR(回车)未被sed识别为新行序列的一部分,因此它保留在行Gregoria<CR>的末尾;因此,下一个字符会在行的开头叠印。

使用dos2unix或某些等效项来修复行结尾。