再见python你好go语言_再见Shell,你好Python
我最終還是決定放棄Shell,轉(zhuǎn)而使用Python。這是為什么呢?來(lái)看看這篇博文,和我一起討論吧!
作為一名職業(yè)程序員,我有多年編寫(xiě)Shell腳本的經(jīng)驗(yàn)。你可能現(xiàn)在跟我面臨著類似的情況。在Shell取得的成就,我倍感珍惜,哪怕是現(xiàn)在,我依然如此。但是我最終還是做出一個(gè)決定——放棄Shell,擁抱Python。
這是為什么呢?看看這篇博文,和我一起討論吧。
真的很難拒絕Shell的誘惑,Shell是一種非常古老的語(yǔ)言,使用廣泛,但它跟不上現(xiàn)代編程的步伐。它糟糕的語(yǔ)言錯(cuò)誤處理、奇怪的語(yǔ)法、沒(méi)有重用代碼的包機(jī)制——這樣的例子不勝枚舉……
1.Unix PIPE哲學(xué)使Shell成為默認(rèn)的語(yǔ)言。它集成各種(相對(duì))小的工具,解決更大的問(wèn)題。因此,如果你現(xiàn)在查看任何流行的在線教程,你可能會(huì)在某個(gè)地方看到Shell腳本。
2. 有了Shell,你可以非常容易地開(kāi)始動(dòng)手并取得進(jìn)展。你在終端中發(fā)出的每個(gè)Shell命令都能給你相應(yīng)的回饋,它讓你感覺(jué)你在不斷的進(jìn)步。
3.?沒(méi)有額外的包裝層。假設(shè)你需要通過(guò)編程觸發(fā)一些索引操作,你可以直接通過(guò)Shell調(diào)用索引管理應(yīng)用程序接口,也可以使用索引 Python SDK。如果你選擇了用Python的方式,但是腳本不能正常工作,那原因是什么呢?可能是Python SDK中的一些bug,或者是使用Python SDK的方式,導(dǎo)致不能正確工作。但是,毫無(wú)疑問(wèn)的是,人們有時(shí)喜歡使用Shell腳本。
朋友們,不管Shell有多少的優(yōu)點(diǎn),我們必須向前看,繼續(xù)前進(jìn)。
我選擇Python作為所有自動(dòng)運(yùn)行的無(wú)人值守腳本的默認(rèn)語(yǔ)言。然而,Shell仍還有空間,例如,我們可以快速打包一些命令并從終端手動(dòng)執(zhí)行它們。
首先,我選擇的這門(mén)語(yǔ)言,它不一定是Python。它可以是任何你熟悉的現(xiàn)代編程語(yǔ)言,比如Ruby、Golang等等。
1. 跨項(xiàng)目重用代碼和模塊。經(jīng)過(guò)多年的積累,我建立了一個(gè)shell公共庫(kù)(GitHub)。用這個(gè)庫(kù),我可以輕松快速地完成許多DevOps任務(wù)——例如,在部署前執(zhí)行預(yù)檢查、通過(guò)Jenkins運(yùn)行部署和維護(hù)等等。然而,分發(fā)并升級(jí)Shell腳本是一個(gè)相當(dāng)大的負(fù)擔(dān)。而用Python,我可以輕松地將邏輯打包為pip包。
2.?要編寫(xiě)像樣、可靠的Shell腳本非常困難。你以為你是貝殼忍者?能夠跟你的腳本對(duì)立運(yùn)行Shellcheck?如果沒(méi)有錯(cuò)誤處理對(duì)應(yīng)方法,你的腳本很容易出現(xiàn)錯(cuò)誤。因此,它可能會(huì)導(dǎo)致嚴(yán)重的破壞或著讓故障排除變得更加困難。
3.?簡(jiǎn)單的需求可能不容易得到Shell支持。例如,當(dāng)你運(yùn)行腳本時(shí),你希望同時(shí)在終端和日志文件中看到輸出結(jié)果。通過(guò)一些實(shí)踐,你最終確定了tee命令的解決方案。但是,你又不得不處理這這種奇怪又棘手問(wèn)題。
現(xiàn)在,我的Python之旅開(kāi)始了。你的呢?
注意:我將在GitHub中保持DevOps Python腳本的開(kāi)源。
翻譯自英文文章:goodbye-shell-hello-python
總結(jié)
以上是生活随笔為你收集整理的再见python你好go语言_再见Shell,你好Python的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 文件 跳板机_shell实现
- 下一篇: 发那科冲压直线搬运机器人_行业应用 |