Android和Linux操作系統在過去幾年變得非常流行。由于它們的開源性質,成本是合理的,值得慶幸的是,大量的工程師已經加入到將這些操作系統移植到幾乎所有可以想象的平臺的努力中來。它們的廣泛使用使得嵌入式開發人員幾乎不可避免地會在某個時候投入開發基于這些系統的系統。
在Linux環境中進行開發時,最有用的工具之一是使用shell腳本。腳本可以幫助設置環境變量,執行重復和復雜的任務,并確保將錯誤保持在最低限度。由于腳本是從終端內部運行的,任何可以從終端手動執行的命令或功能也可以自動化!
創建腳本非常直接,它可以通過打開諸如 gedit 之類的編輯器或通過諸如 VI 之類的終端編輯器來創建。 最常見的腳本類型是 bash 腳本。 這些腳本通常與 .sh 擴展名相關聯,但根本不需要包含擴展名! 任何腳本的頂部都應包含在第一行 #!/bin/bash. 這告訴了應該使用什么解釋器來運行腳本。
除此之外,可以自定義腳本以滿足嵌入式開發人員的需求。一個好的第一個腳本,就像任何程序一樣,是創建一個“Hello World”腳本。除了解釋器說明符之外,clear 用于清除任何先前消息的終端,而 echo 用于輸出文本。
創建腳本后,可以使用終端運行它。 但是,立即將腳本作為 ./scripts.sh 運行通常會導致錯誤。 此錯誤是由于文件權限引起的。 這可以通過首先輸入命令 chmod +x script_name.sh 來解決。 這將添加腳本以具有可執行權限。 然后可以通過鍵入 ./script_name.sh 來運行該腳本。
現在已經運行了第一個腳本,真正的問題歸結為在腳本中可以做什么? 可以運行哪些命令和功能? 答案是可以從終端運行或執行的任何東西! 腳本可以使用 cd 來更改目錄。 也許腳本需要創建一個目錄并移入其中。 不是問題! 該腳本可以包含 mkdir 命令,然后可以使用 cd 遍歷新目錄。 嵌入式開發人員甚至可能希望將創建的目錄添加到路徑變量中。 這可以使用導出命令來完成。
為嵌入式系統開發軟件時,有時可能需要模塊化腳本。也許只需要編譯內核,有時需要編譯內核,然后鏈接一些外部庫。可以創建腳本來處理這些單獨的項目,然后創建一個腳本來根據構建需要調用這些單獨的腳本!這是一個相對直截了當的過程,它匯集了到目前為止已經展示的所有示例。
就像在常規的計算機程序中一樣,可能需要使用變量來跟蹤數據。無論這是字符串還是數字數據,腳本都可以像標準應用程序一樣訪問變量。在腳本環境中,就像在任何常規計算機語言中一樣,對變量名也有一些要求。這些規則與c語言的規則非常相似。首先,變量必須以字母開頭。其次,變量不能包含空格,而是應該使用下劃線來橋接名稱。第三,變量名不應該是bash解釋器理解的關鍵字或保留字。這將導致混亂和不一致或不正確的結果。最后,變量名不應包含任何標點符號。遵循這些規則將確保嵌入式開發人員享受無bug的腳本編寫體驗。
現在創建一個變量非常簡單。與C #不同,這里沒有類型說明符。在腳本中,可以通過命名變量并將其設置為一個值來聲明變量。也可以從腳本中訪問系統變量和信息。例如,可以使用$HOSTNAME來訪問計算機主機名。還可以存儲日期和當前用戶信息。
有了這些信息,嵌入式開發人員現在可以對開始自動化軟件開發過程所需的必要命令有一個基本的了解。雖然這里提供的信息是一個好的開始,但請留意“Shell Scripting 102”,它將詳細介紹如何控制腳本執行流程和接受用戶信息。