什么時(shí)候不使用Shell腳本
資源密集型的任務(wù),尤其在需要考慮效率時(shí)(比如,排序,hash等等
需要處理大任務(wù)的數(shù)學(xué)操作,尤其是浮點(diǎn)運(yùn)算,精確運(yùn)算,或者復(fù)雜的算術(shù)運(yùn)算 (這種情況一般使用C++或FORTRAN來(lái)處理)
有跨平臺(tái)移植需求(一般使用C或Java)
復(fù)雜的應(yīng)用,在必須使用結(jié)構(gòu)化編程的時(shí)候(需要變量的類型檢查,函數(shù)原型,等等)
對(duì)于影響系統(tǒng)全局性的關(guān)鍵任務(wù)應(yīng)用岸军。
對(duì)于安全有很高要求的任務(wù),比如你需要一個(gè)健壯的系統(tǒng)來(lái)防止入侵,破解,惡意破壞等等.
項(xiàng)目由連串的依賴的各個(gè)部分組成。
需要大規(guī)模的文件操作
需要多維數(shù)組的支持
需要數(shù)據(jù)結(jié)構(gòu)的支持,比如鏈表或數(shù)等數(shù)據(jù)結(jié)構(gòu)
需要產(chǎn)生或操作圖形化界面GUI
需要直接操作系統(tǒng)硬件
需要I/O或socket接口
需要使用庫(kù)或者遺留下來(lái)的老代碼的接口
私人的,閉源的應(yīng)用(shell腳本把代碼就放在文本文件中,全世界都能看到)
如果你的應(yīng)用符合上邊的任意一條,那么就考慮一下更強(qiáng)大的語(yǔ)言吧--或許是Perl,Tcl,Python,Ruby -- 或者是更高層次的編譯語(yǔ)言比如C/C++,或者是Java.