【发布时间】:2013-01-31 21:03:45
【问题描述】:
我已经看到了多种变量连接应该如何工作的方式,但它们并没有按照我的预期工作,也不知道为什么......
我正在将一个 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
当我运行上述脚本时,如果它正在处理的域名是 domain.com 我得到的输出是: .zonen.com
预期输出将是 domain.com.zone
变量 n(5 个字符)的内容正在覆盖变量 t 的前 5 个字符
有人可以解释我做错了什么,我认为这一定与期间有关,但一直无法弄清楚。
【问题讨论】:
-
也许您的文本文件中有
CR字符? (Windows 或 Mac 行尾) -
这听起来确实是个问题。您应该将其发布为答案。
-
使用
filecontent=($(cat goodFvzones.txt | tr -d '\r'))等待@AntonKovalenko 建议作为答案。 -
是的,这就是我应该知道的问题,我实际上是使用 dos2unix 进行转换的 Anton。但是感谢其他人的其他选择。
-
@thatotherguy 是的,添加为答案
标签: bash variables concatenation