前言
本文並不著重於 Shell Scripting 的技術細節,而是從 學習心態 的角度,分享如何有效地進入這個領域。重點在於建立正確的思維方式,而非單純累積指令技巧。
習慣性使用命令列
Shell Script 本質上是 將一個或多個指令串接起來。
若要寫得流暢,必須先養成 經常使用命令列 的習慣。
透過日常操作熟悉指令的行為模式,才能在撰寫腳本時自然地組合並應用,提升速度與效率。
調整自己的命令列
像 .profile、.bashrc 等設定檔,本身就是以 Shell 語法 撰寫。
從這些檔案開始調整自己的命令列環境,不僅能讓操作更符合個人習慣,也能在過程中逐步熟悉 Shell 的語法。
這是一個自然的切入點:
- 邊調整邊學習,逐漸理解指令的結構
- 累積經驗,讓撰寫 Shell Script 變得更直覺
自動化的時機
以下情境特別適合透過 Shell Script 來自動化:
- 長指令:輸入過程冗長,容易出錯
- 多步驟:需要依序執行多個指令
- 重複輸入:相同操作反覆出現
當你發現自己在 重複執行某些指令 時,就代表有潛力將流程自動化。
例如:OCaml 編譯器的指令偏長,且會產生許多 artifact。
這時候可以撰寫 Shell Script,不僅能省下輸入冗長指令的時間,還能自動清除 artifact,讓流程更乾淨高效。
改善指令
有些指令的設計並不完善,但在工作流程中卻不得不用。
這時候,撰寫 Shell Script 就成為一種 改善使用體驗 的方式。
例如:ptop(Pascal 程式碼重排工具)預設無法直接原地修改檔案。
透過 Shell Script,可以在背景建立暫存檔,並巧妙地轉換檔案的輸入與輸出,達到原地修改的效果。
這種做法不僅解決了工具本身的限制,也展現了 Shell Script 在 補強與優化指令 上的價值。
知道 Shell Scripting 的邊界
Shell Script 的靈活性極高,這也意味著有時候會寫出 能運行但不適合的程式。
因此,必須了解不同技術棧的適用情境,避免在不合適的場景中勉強使用 Shell Script。
一個常見的誤區是:
當開始嘗試在 Shell Script 中處理 資料結構或演算法,並且這些操作與工作流程(workflow)無關時,往往代表選錯工具。
Shell Script 的強項在於 流程控制與自動化,而非複雜邏輯。
知道邊界,才能在正確的場景下發揮它的最大價值。