通过上周对shell脚本的学习完成实習所安排的第一个脚本任务,我也对shell有了一些基本认识:
1.shell的语法和结构比较简单易于掌握
2.学习和使用也比较方便,上手比较容易
3.常用命囹也比较好记不清楚的情况下,可以通过man命令迅速找到相关的说明
4.shell是解释型语言运行之前不需要编译
5.文本处理方面,主要依赖于awk、sed这兩把尖刀能够方便快捷地处理相当复杂的问题
6.程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务
1.弱类型语言对變量定义的查检不是很严格
2.效率上存在的劣势:shell相当于一个接口,大部分的功能全部靠外部程序来完成如shell在调用awk、sed的进程来处理文件时,需要产生一个新的进程并且还需要使用管道进行IPC进程通信,那么就会增大相应的开销在文本处理过程中,原本一个工具一次能完成嘚任务在需要经过awk和sed等多次管道后,程序性能的降低是必然的因此,按照这个观点来看的话完成同样功能的C代码要比shell快(我会进一步做测试验证这个想法)。结合shell易于开发但效率不高的特点,可以用一句话来概括:“shell的开发产能优于运行的性能”
3.I/O性能不高:之前看過一篇文章介绍shell的I/O性能比perl要差,我会进一步做测试来验证这个观点是否正确
4.一些细节上的不足:向awk传入shell定义的变量时,表达式比较复雜且对shell的变量是只能读取而不能修改。
通过上周的学习和脚本的编写我对shell的大概认识如上所述。
这周工作计划:学习python并用python完成第二個脚本的任务,在周末做一个有关python学习小结并把python与shell从运行效率、I/O等性能方面做一下对比。