Bash vs Python:你該使用哪個?

2019-04-15 10:55:00

兩種程式語言都各有優缺點,它們在某些任務方面互有勝負。

BashPython 是大多數自動化工程師最喜歡的程式語言。它們都各有優缺點,有時很難選擇應該使用哪一個。所以,最誠實的答案是:這取決於任務、範圍、背景和任務的複雜性。

讓我們來比較一下這兩種語言,以便更好地理解它們各自的優點。

Bash

  • 是一種 Linux/Unix shell 命令語言
  • 非常適合編寫使用命令列介面(CLI)實用程式的 shell 指令碼,利用一個命令的輸出傳遞給另一個命令(管道),以及執行簡單的任務(可以多達 100 行程式碼)
  • 可以按原樣使用命令列命令和實用程式
  • 啟動時間比 Python 快,但執行時效能差
  • Windows 中預設沒有安裝。你的指令碼可能不會相容多個作業系統,但是 Bash 是大多數 Linux/Unix 系統的預設 shell
  • 與其它 shell (如 csh、zsh、fish) 完全相容。
  • 通過管道(|)傳遞 CLI 實用程式如 sedawkgrep 等會降低其效能
  • 缺少很多函數、物件、資料結構和多執行緒支援,這限制了它在複雜指令碼或程式設計中的使用
  • 缺少良好的偵錯工具和實用程式

Python

  • 是一種面對物件程式語言(OOP),因此它比 Bash 更加通用
  • 幾乎可以用於任何任務
  • 適用於大多數作業系統,預設情況下它在大多數 Unix/Linux 系統中都有安裝
  • 與虛擬碼非常相似
  • 具有簡單、清晰、易於學習和閱讀的語法
  • 擁有大量的庫、文件以及一個活躍的社群
  • 提供比 Bash 更友好的錯誤處理特性
  • 有比 Bash 更好的偵錯工具和實用程式,這使得它在開發涉及到很多行程式碼的複雜軟體應用程式時是一種很棒的語言
  • 應用程式(或指令碼)可能包含許多第三方依賴項,這些依賴項必須在執行前安裝
  • 對於簡單任務,需要編寫比 Bash 更多的程式碼

我希望這些列表能夠讓你更好地了解該使用哪種語言以及在何時使用它。

你在日常工作中更多會使用哪種語言,Bash 還是 Python?請在評論中分享。