這問題是個人目前小感受,目的在討論,不在最佳解答
學到目前 bash 滿容易入門 cat,grep 等很多文本處理工具,非常強大
但想要精通跟各種工具串接就會遇到各種奇技淫巧
...
甚至還有類似的網站收集這種技巧 bashoneliners.com | Bash One-Liners
目前偏向 python 來寫複雜邏輯
,至少新的 linux 環境都有 python
雖然沒辦法讓別人享受到 複製貼上開箱即用
的好處,但能讓自已的白頭髮少幾根
以上個人看法,提供參考跟討論、批評
每個人想法不同,不會有對錯,都是自己遇到的環境會讓你萌生新想法。
曾經我也這樣想,但是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寫的,因為環境限制後選擇的工具這樣最好。
所以現在你的體悟是這樣,但你日後接觸的環境可能會給你新的感受。