微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash – 如何在没有tail命令的情况下编写尾部脚本

你会如何在bash中实现这一目标.这是我在面试中被问到的一个问题,我可以用高级语言来思考答案,但不能用 shell来思考答案.

据我了解,tail的真正实现寻求到文件的末尾,然后向后读.

解决方法

主要思想是保持固定大小的缓冲区并记住最后一行.这是使用shell做尾部的快速方法

#!/bin/bash

SIZE=5
idx=0

while read line
do
    arr[$idx]=$line
    idx=$(( ( idx + 1 ) % SIZE )) 
done < text

for ((i=0; i<SIZE; i++))
do
    echo ${arr[$idx]}
    idx=$(( ( idx + 1 ) % SIZE )) 
done

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐