我在while循环中运行for循环。
作为参数传递的文件具有以下内容:
peter
roger
casie
我正在尝试创建一个路径来测试文件a,b,c,d,e
的存在我期待输出
/peter/a
/peter/b
等等。
相反,我正在
/aeter
/beter
等
我需要在这里理解什么?请找到以下代码 -
CODE:
while read fileLine; do
x=$fileLine
for i in a b c d e
do
echo /$x/$i
done
done < $1
答案 0 :(得分:1)
显然,您的输入文件使用\r\n
的Windows行尾格式。 read
移除了\n
,但离开了\r
。打印字符串/$x/$i
时,“托架”将返回到x
字符串末尾的行的开头,并在x
的斜杠顶部打印斜杠。将i
上的字母打印在x
的第一个字母上。
您可以通过将x=$fileLine
行替换为
x=${fileLine%?}
应删除最后一个字符。