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。即使如此,你会发现,使用Shell来原型开发你的应用,在开发步骤中也是非常有用的。


注:以上摘自ABS_Guide_cn。