因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。因此,之所以要使用Shell脚本是基于:

  • 简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。
  • 可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。
  • 开发容易:可以在短时间内完成一个功能强大又妤用的脚本。

但是,考虑到Shell脚本的命令限制和效率问题,下列情况一般不使用Shell:

  1. 资源密集型的任务,尤其在需要考虑效率时(比如,排序,hash等等)。
  2. 需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理)。
  3. 有跨平台(操作系统)移植需求(一般使用C 或Java)。
  4. 复杂的应用,在必须使用结构化编程的时候(需要变量的类型检查,函数原型,等等)。
  5. 对于影响系统全局性的关键任务应用。
  6. 对于安全有很高要求的任务,比如你需要一个健壮的系统来防止入侵、破解、恶意破坏等等。
  7. 项目由连串的依赖的各个部分组成。
  8. 需要大规模的文件操作。
  9. 需要多维数组的支持。
  10. 需要数据结构的支持,比如链表或数等数据结构。
  11. 需要产生或操作图形化界面 GUI。
  12. 需要直接操作系统硬件。
  13. 需要 I/O 或socket 接口。
  14. 需要使用库或者遗留下来的老代码的接口。
  15. 私人的、闭源的应用(shell 脚本把代码就放在文本文件中,全世界都能看到)。

如果你的应用符合上边的任意一条,那么就考虑一下更强大的语言吧——或许是Perl、Tcl、Python、Ruby——或者是更高层次的编译语言比如C/C++,或者是Java。

最新文章

  1. ASP.NET MVC5 网站开发实践(二) Member区域 - 添加文章
  2. 前端弹出对话框 js实现 ajax交互
  3. 经典SQL语句大全(网络资源共享)
  4. c++ 普通高精乘
  5. hotspot
  6. Symmetric Tree——LeetCode
  7. perl中执行linux命令,及其区别
  8. centos 6 下编译安装 nginx
  9. javaWeb学习总结(8)- JSP原理
  10. miniUI Grid添加汇总行,Grid绑定数据,IDEA免编译设置
  11. Lua模式匹配
  12. GET和POST两种请求方法的区别(RFC翻译)
  13. layui(三)——laypage组件常见用法总结
  14. bootstrap-multiselect 多选
  15. 超简单系列:ubuntu 13.04 安装 apache2.2+mod_wsgi+Django
  16. 2019-03-26-day019-面向对象耦合与组合
  17. 获取验证码随机字符串@return string $captcha,随机验证码文字
  18. C博客作业03—函数
  19. 对sql作业的总结(PostgreSQL的递归查询)
  20. 5-[HTML]-body常用标签2

热门文章

  1. Linux大文件快速处理小方法
  2. HDU 5592——ZYB's Premutation——————【线段树单点更新、单点查询】
  3. HDU 4355——Party All the Time——————【三分求最小和】
  4. ICSharpCode.SharpZipLi 压缩、解压文件 附源码
  5. JQuery 技巧总结
  6. input type="image" 提交表单
  7. Mysql慢查询 [第二篇]
  8. arcgis Flex QueryTask
  9. u-boot分析(十一)----MMU简单分析|u-boot分析大结局|学习规划
  10. AOP术语分析