在shell脚本中模仿尾巴命令时获取错误,而无需使用内置的尾巴命令

发布于 2025-01-19 00:54:29 字数 709 浏览 0 评论 0原文

我编写了这段代码来模仿 tail 命令,而不使用内置命令,尽管语法正确,但它在 for 循环中给出错误! 我无法弄清楚错误到底在哪里? 还有预期输出: 它应该打印文件中的最后 n 行。 n 是从用户处扫描的。 代码错误

#!/bin/sh echo -n "输入文件名:" read file_name echo -n "输入行数:" read n touch $file_name str="end" temp="temp" echo "开始输入文件数据并写 end 停止:" while [ 1 ] do read string touch $temp echo $string > ; $temp grep -w "$str" $temp if [ $? -eq 0 ] 然后中断 else cat $temp >> $file_name fi 完成 rm $temp echo "---------------------------------------- ----------------”total_lines=wc-l< $file_name echo $total_lines a=expr $total_lines - $nexec <; $file_name for ((i=$a;i<$total_lines;i++ )) do read a1 echo $a1 done

I have written this code to imitate tail command without using inbuilt command and it is giving error in for loop though syntax is correct!
I am not able to figure it out where actually the error is?
Also Expected output:
It should print last n number of lines from the file.
n is scanned from user.
Error in Code

#!/bin/sh echo -n "Enter file name: " read file_name echo -n "Enter number of lines: " read n touch $file_name str="end" temp="temp" echo "Start entering data of file and write end for stopping: " while [ 1 ] do read string touch $temp echo $string > $temp grep -w "$str" $temp if [ $? -eq 0 ] then break else cat $temp >> $file_name fi done rm $temp echo "---------------------------------------------------------" total_lines= wc -l < $file_name echo $total_lines a=expr $total_lines - $nexec < $file_name for ((i=$a;i<$total_lines;i++ )) do read a1 echo $a1 done

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文