zoukankan      html  css  js  c++  java
  • 什么是shell 是不是什么时候都可以使用shell

    因为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。
    》》我是IDO老徐,从业十年的IT老鸟,测试职业分享者;文章如未注明转载,均属原创 。 欢迎各同行交流探讨,我的个人博客isTester.com
  • 相关阅读:
    Java实现各种内部排序算法
    Java实现堆排序(大根堆)
    Java对象的序列化和反序列化
    Java实现链式存储的二叉查找树(递归方法)
    337. House Robber III(包含I和II)
    318. Maximum Product of Word Lengths
    114. Flatten Binary Tree to Linked List
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    96. Unique Binary Search Trees(I 和 II)
  • 原文地址:https://www.cnblogs.com/idotest/p/5203891.html
Copyright © 2011-2022 走看看