一、使用bash
△Bourne-Again shell的缩写,对于所有UNIX上的shell脚本来说, Bash已经成为了事实上的标准了
△对于任何想适当精通一些系统管理知识的人来说, 掌握shell脚本知识都是最基本的
△Shell脚本遵循典型的UNIX哲学, 就是把大的复杂的工程分成小规模的子任务, 并且把这些部件和工具组合起来
二、什么时候不适合使用bash
△资源密集型任务,尤其是考虑效率时(如排序、hash等)
•例子,time awk 'BEGIN{for(i=0;i<100000;i++){print "helloworld"}}' 这个6秒多 ,用BASH的FOR循环要8秒,用PERL,0.8秒.
•处理APACHE的日志.apache的日志要导入到MYSQL里做统计,就要处理,调整下顺序,把英文的月份改成中文的,500M的一个日志,用WHILE READ 处理 中间用的SED处理,处理的速度是每分钟处理2M.用AWK处理了下,整个日志只用了40多秒.
△需要处理大任务的数学操作时, 尤其是浮点运算, 精确运算, 或者复杂的算术运算
△有跨平台移植需求时(一般使用C或Java). △需要产生或操作图形化界面GUI时 △需要直接操作系统硬件时
△复杂的应用, 在必须使用结构化编程的时候(需要变量的类型检查, 函数原型, 等等). △需要I/O或socket接口时
△至关重要的应用时 △对于任务安全要求高时 △需要多维数组的支持时△需要数据结构的支持时 △需要使用库或者遗留下来的旧代码的接口时
△需要大规模的文件操作时(Bash受限于顺序地进行文件访问, 而且只能使用这种笨拙的效率低下的一行接一行的处理方式. ).
△个人的, 闭源的应用时(shell脚本把代码就放在文本文件中, 全世界都能看到).