一、使用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腳本把代碼就放在文本文件中, 全世界都能看到).