编写一个名为print_lines.sh
的脚本,它使用head
和tail
一起打印出文件中的一组特定行。该脚本应该有三个参数:要开始的行号,要停止的行号以及要使用的文件。这是一个示例运行:
[user@localhost ~]$ print_lines.sh 7 10 /etc/passwd
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
在此示例中,脚本打印/etc/passwd
文件的第7行到第10行(包括)。您的脚本必须执行错误检查。具体来说,您需要检查以下所有内容:
这是我的工作,但效果不佳
filename=$1
firstline=$2
lastline=$3
i=0
exec <${filename} # redirect file into our stdin
while read ; do # read each line into REPLY variable
i=$(( $i + 1 )) # maintain line count
if [ "$i" -ge "${firstline}" ] ; then
if [ "$i" -gt "${lastline}" ] ; then
break
else
echo "${REPLY}"
fi
fi
done