iT邦幫忙

0

不想精通 Bash ,覺得複雜邏輯還是靠 python

  • 分享至 

  • xImage

這問題是個人目前小感受,目的在討論,不在最佳解答

學到目前 bash 滿容易入門 cat,grep 等很多文本處理工具,非常強大
但想要精通跟各種工具串接就會遇到各種奇技淫巧...
甚至還有類似的網站收集這種技巧 bashoneliners.com | Bash One-Liners

目前偏向 python 來寫複雜邏輯,至少新的 linux 環境都有 python
雖然沒辦法讓別人享受到 複製貼上開箱即用的好處,但能讓自已的白頭髮少幾根

以上個人看法,提供參考跟討論、批評

sh 還不錯,bat 才可怕
bat ...我選擇放生 XD
bizpro iT邦大師 1 級 ‧ 2020-10-05 22:18:03 檢舉
Bash是必要, Python是需要. 兩個是不同的. 不論是否用Python, 都應該要熟Bash.
更要熟Bash三劍客: sed, awk, grep.

bat可以不用, Powershell不錯, 上個月用Windows的Powershellv寫一個設定TLS的腳本, 如果沒有用腳本也可以一台一台設定, 只是圖形界面總是煩人. 但Linux上如果不用bash, 就很奇怪了.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

8
icekimo
iT邦新手 3 級 ‧ 2020-10-03 23:18:24
最佳解答

每個人想法不同,不會有對錯,都是自己遇到的環境會讓你萌生新想法。
曾經我也這樣想,但是python套件太肥了,而且不是每個都是自己的伺服器可以隨手裝套件。
如果說單純練習bash寫shellscript,在異質系統通用性也有差,所以如果你的目的是要在不同性質系統簡化自己的工作,你應該最後會發現直接用sh寫才是最大的通用性,同時也會犧牲那些花俏的one-liner寫法。我自己是在AIX的tcsh掙扎數晚後,決心乖乖寫sh就好,因為你無法把公司營運中、有幾億元滾動的機器隨意自己新增移除套件測試,然後保證不會出意外。
我自己出過最鳥的狀況,就是練習ln時把錯誤空檔案鍊結回主系統.so,連ls都當場毀掉,幸運的是剛好有全部輸入的單行逐筆的指令,而不是即時查找弄出的one-liner指令,因此我倒轉連結對象,沒有重開也沒有重灌,就是流了一身冷汗。那萬一當時自己耍酷用one-liner式作法,大概就GG了。
至於用python的想法,也許你現在的環境可以發展出這樣的作法,不會遇到無法裝Python套件的嵌入式系統之類的狀況,個人也見識過maker因為硬體限制,自己轉換三角函數8位元表給自己程式查表,比引用與編譯函示庫快的「自造輪子」例子。
例如這個專案 https://github.com/acmesh-official/acme.sh 就是純sh寫的,因為環境限制後選擇的工具這樣最好。
所以現在你的體悟是這樣,但你日後接觸的環境可能會給你新的感受。

感謝 icekimo 大神的分享,想一想的確是因為現在的環境都有 python 所以才有這想法

我要發表回答

立即登入回答