在bash(debian)中连接变量

1 variables bash concatenation

我已经看到了变量串联应该如何工作的多种方式,但它们没有按照我的预期工作,也不确定为什么......
我正在读取一个txt文件到一个数组中每一行都是我想做的域名区域传输输出到文件名为domain.zone的文件简单权限....

好吧,这是我已经考虑过实际挖掘部分的剧本

#!/bin/bash
filecontent=($(cat goodFvzones.txt))
for t in "${filecontent[@]}"
do
n=".zone"
x=$t$n
echo "$x"
#dig @dnsserver -t axfr $t > $x
done
Run Code Online (Sandbox Code Playgroud)

当我运行上面的脚本时,如果它正在使用的域名是domain.com,我得到的输出是:.zonen.com

预计产量将domain.com.zone
变量n(5个charaters)的内容覆盖第5个charaters变量t的一个人能解释我在做什么错了,我想一定有什么做的期间,但一直没能够搞清楚.

Ant*_*nko 8

当您发现较短的字符串"覆盖"较长字符串的开头时,首先要考虑的是CR字符(在Windows和Mac行结尾中使用).命令替换删除了换行符,但它删除了Unix换行符(LF)并且对回车符没有任何作用.

您可以通过过滤输入tr -d '\r'来删除回车,或使用dos2unix实用程序就地转换损坏的文件.

查看输出less -U可能有助于调试此类问题(将less -U回车符,制表符和退格键显示为控制字符等^M ^I ^H).