簡體   English   中英

哪些腳本不應該從bash移植到python?

[英]What scripts should not be ported from bash to python?

我決定用Python重寫我們所有的Bash腳本(它們並不多),這是我的第一個Python項目。 這樣做的原因是,盡管他對Bash相當流利,但我覺得它有些陳舊,而且由於我們的系統處於開發的初期階段,我認為現在改用Python是正確的選擇。

是否有應始終使用Bash編寫的腳本? 例如,我們有一個init.d守護程序腳本-可以使用Python嗎? 我們運行CentOS。

謝謝。

可以做到就可以了。 但是/etc/init.d的腳本通常需要加載配置數據和某些功能(例如,在控制台上打印漂亮的綠色OK ),而這些功能很難在Python中模擬。

因此,請嘗試轉換有意義的內容(即包含復雜邏輯的內容)。 如果您需要作業控制(啟動/停止過程),那么bash比Python更適合。

通常,/ etc / init.d中的腳本是在操作系統的“本機外殼”中編寫的(例如bash,sh,posix-sh等)。 對於將以較低的init級別運行的腳本尤其如此(例如,並非每個目錄都將以單用戶模式安裝,包括可能安裝python或站點庫的任何位置)。

大多數操作系統都提供了一些“輔助功能”,這些功能使在某些本機外殼中編寫腳本更加容易。 這些腳本定義編寫服務腳本時需要/需要的某些返回碼和消息。 在基於RedHat的系統上,請參閱:

/etc/init.d/functions 

除此之外,/ etc / init.d中的服務腳本可以用任何語言(包括編譯語言)編寫。 需要支持常規調用語法。 通常,應支持三個參數:開始,停止和狀態。 根據腳本的目的,一些其他參數可能是合適的。

% /etc/init.d/foo (start|stop|status)  

每個任務都具有更適合它的語言,而不太適合。 替換sh的反引號`在Python中非常麻煩,因為無數的引用細節,僅舉幾例。 可能會有更好的項目來吸引您。

他們上面所說的關於Python的重量相對較大,並且在需要時不一定可用。

我編寫的某些腳本僅涉及循環遍歷某些目錄中的glob,然后在其上執行一系列管道命令。 這種事情在python中更加乏味。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM