下面的程序读取一个文件,它打算将所有值(每行)存储到一个变量中,但不存储最后一行。为什么?

文件.txt :

   1
   2
   .
   .
   .
   n

代码 :
 FileName=file.txt

if test -f $FileName         # Check if the file exists
    then
        while read -r line
        do
            fileNamesListStr="$fileNamesListStr $line"

        done < $FileName
    fi

  echo "$fileNamesListStr"  // 1 2 3 ..... n-1 (but it should print up to n.)

最佳答案

与其逐行读取,为什么不一次读取整个文件呢?

[ -f $FileName ] && fileNameListStr=$( tr '\n' ' ' < $FileName )

关于bash - Shell 脚本 : how to read a text file that does not end with a newline on Windows,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9408103/

10-15 08:16