我正在敲打着我想到的语法墙,我不知道出了什么问题。我有一个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。
答案 0 :(得分:0)
你的代码的语法是完美的,虽然我可能会在其中放置一个IFS并删除冗余的分号。
我怀疑文件中的行结尾导致错误。下面的脚本应该处理...但最好的方法是使用一个新的小型测试文件来运行你的脚本。
while IFS= read -r line; do
echo "$line"
done < <(sed 's/^M$//' "$1")