【发布时间】:2014-10-15 18:02:15
【问题描述】:
我有以下 shell 脚本来读取文件的前三行并将它们打印到屏幕上 - 它无法正常工作,因为它打印出第 2、3、4 行而不是第 1、2、3 行 - 什么我做错了吗?
exec 6< rhyme.txt
while read file <&6 ;
do
read line1 <&6
read line2 <&6
read line3 <&6
echo $line1
echo $line2
echo $line3
done
exec 6<&-
感谢您的回答 - 我知道 head 命令,但想使用读取和文件描述符来显示前三行
【问题讨论】:
-
“head”不是更好的选择吗?像'head -3 rhyme.txt'这样的东西。
-
head -3有效,但使用head -n 3更清晰 -
head -3
应该是这里最好的选择。 -
如果你真的想使用
while和read,你也可以使用:while IFS= read -r line; do echo "$line"; done < <(head -n 3 file)