从bash脚本中的文件中读取行

时间:2014-10-16 17:23:48

标签: linux bash

我正在敲打着我想到的语法墙,我不知道出了什么问题。我有一个bash脚本,曾经在较旧版本的Redhat上运行,但由于某种原因,它没有在我们的Linux服务器上运行。在任何情况下,我都尝试更新,现在就是我现在拥有的......

根据评论建议更新:

#!/bin/bash
while read -r line;
do
     echo "this is species no. $line";
done < "$1"

最终,我想要做的就是将这些数字传递给R脚本,但不管现在。它似乎不喜欢在脚本末尾传递文件(我在意外令牌附近得到了#34;语法错误&#39;已完成&#39;)。但是,当我把它拿出来时,它会说&#34;意外的文件末尾。&#34;出了什么问题?

如果重要,服务器正在运行bash 4.2.25。

1 个答案:

答案 0 :(得分:0)

你的代码的语法是完美的,虽然我可能会在其中放置一个IFS并删除冗余的分号。

我怀疑文件中的行结尾导致错误。下面的脚本应该处理...但最好的方法是使用一个新的小型测试文件来运行你的脚本。

while IFS= read -r line; do
    echo "$line"
done < <(sed 's/^M$//' "$1")