我的 bash shell 脚本中数组的长度似乎偏离了 1。我有11一个文本文件中的元素,我正在读入一个数组,但我的数组长度似乎是12.
(( count = 0 ))
while read students[$count] ; do
(( count++ ))
done < students.dat
echo $count
ArrayLength=$((${#students[@]}))
echo $ArrayLength
Run Code Online (Sandbox Code Playgroud)
此代码输出:
11
12
Run Code Online (Sandbox Code Playgroud)
这11是有道理的,因为计数增量发生在读取发生之后,并以0--indicating11元素读入开始。
但这12很神秘。
这是数据文件:
Ann
Bob
Cindy
Dean
Emily
Frank
Ginger
Hal
Ivy
Justin
Karen
Run Code Online (Sandbox Code Playgroud)
(名称出现在自己的行上,但我无法在这篇文章中以这种方式对其进行格式化)
我已经仔细检查了多个实用程序,文件末尾没有空行,也没有任何行的尾随空格。