While循环仅读取第一行

时间:2020-10-22 02:57:00

标签: while-loop

我写了以下while循环

while IFS= read -r uid; do
echo "$uid" >> output_file
esearch -db nuccore -query "$uid" | elink -target taxonomy | esummary | xtract -pattern DocumentSummary -element TaxId | xargs -n 1 sh -c 'efetch -db taxonomy -id "$0" -format xml' | xtract -pattern Taxon -block "*/Taxon" -unless Rank -equals "no rank" -tab "\n" -element Rank,ScientificName | grep -e "^family" -e "^genus"  >> output_file
done < input_file

使用如下所示的input_file

AB439150.1
MN241552.1
MN241574.1
MN411191.1

它仅在第一行工作正常(但如果我在循环中注释掉第二个命令,则可以正常工作)。 esearch(以及后面的管道命令)输出文本。从其他问题来看,它与grep有关,而while循环无法读取任何内容。我无法解决这个问题!有人-帮助吗?

0 个答案:

没有答案