Linux

用於 unix 相關任務的 Bash vs python

  • October 6, 2019

即使擁有高級程式語言的經驗,我仍在努力使用 Bash 來自動執行任務(作為 Unix 的新手 - Linux Mint)。該語言非常強大,但學習曲線太陡峭。因此,我正在考慮完全轉向 python 來編寫腳本(python 預裝在 Linux Mint 上)。

我的偏好是可讀性和可測試性(python)與簡潔和優雅(Bash)。

您能否列出一些最重要的原因,說明為什麼在與 O/S 相關的任務中使用 python vs 腳本“不會”是合理的/可能的。

“自動化任務”有點寬泛。許多典型的系統管理員任務可以儲存在非常簡單的 shell 腳本或單個命令中,其中“真實”語言的級別太高而無法實用。這就是“殼”這個名字的由來——你舒適地坐在裡面,但也被抓住了。沒有 perl shell 或 python shell - 我什至不知道為什麼,確切地說。

shell(s) 讓您可以非常輕鬆地集成其他解釋器:用於執行檔的 shebang,以及使用字元串(“one liner”)或文件(“named script”)的顯式呼叫。

可讀性和可測試性 vs 簡潔和優雅

根據具體問題,您可以使用任何一種語言。問題不在於(python vs. perl) vs. bash,而在於哪個“錘子”用在哪個“釘子”上。

來自評論:

速度可能是另一個問題,Python 啟動速度可能很慢……

同樣,一切都取決於特定的任務/算法。但是速度始終是一個問題,因為如果你以某種方式執行它,一個看起來“無害”的循環可能需要 10 或 100 倍的時間。

我會說只使用你喜歡的東西,以及完成工作的東西。

我同意這是否意味著:在您編寫腳本之前,您必須決定:

  1. 如何有效地做到這一點?(並且便攜,可維護,優雅,並且……)
  2. 我喜歡使用什麼工具?(我擅長嗎?)

它應該匹配。

如果不是:那麼你用你的語言做一個hack,或者你用**另一種語言學習一個新主題。

引用自:https://unix.stackexchange.com/questions/545311