嵌入式開發場景中Shell腳本執行方式的對比

?Shell腳本執行方式對比表?

?執行方式??命令示例??是否需要執行權限??是否啟動子Shell??環境變量影響范圍??適用場景??嵌入式開發中的典型應用?
?直接執行腳本?./script.sh子Shell內有效獨立運行的腳本,需固定環境自動化構建腳本(如編譯固件)
?指定解釋器執行?bash script.sh子Shell內有效快速測試、無需權限的調試臨時調試設備日志分析腳本
?source?或?.?執行?source script.sh當前Shell全局有效加載環境變量、定義函數/別名初始化交叉編譯環境(如設置PATH
?全局調用(PATH)?script.sh(需在PATH中)子Shell內有效頻繁使用的工具腳本部署到設備中的常用工具腳本
?輸入重定向/管道?bash < script.sh子Shell內有效動態生成腳本內容或臨時執行通過SSH發送腳本到嵌入式設備執行

?各執行方式詳解及嵌入式場景說明?

1. ?直接執行腳本?
  • ?嵌入式應用?:
    在自動化構建時(如通過Jenkins),直接運行編譯腳本生成固件:
./build_firmware.sh
  • ?注意?:
    • 需在腳本第一行指定正確的shebang(如#!/bin/bash)。
    • 嵌入式設備可能使用精簡Shell(如dash),需測試兼容性。
2. ?指定解釋器執行?
  • ?嵌入式應用?:
    臨時調試時,直接通過解釋器運行腳本(無需修改權限):
sh analyze_logs.sh  # 設備可能默認使用`sh`而非`bash`
  • ?注意?:
    • 嵌入式設備的Shell可能是busybox ash,需注意語法兼容性。
3. ?source?執行(關鍵場景)?
  • ?嵌入式應用?:
    初始化交叉編譯工具鏈環境變量(變量需全局生效):
source setup_toolchain.sh  # 腳本內容:export PATH="/opt/arm-gcc/bin:$PATH"
  • ?注意?:
    • ?必須用source?,否則變量僅在子Shell生效,編譯時會提示找不到工具鏈。
4. ?全局調用(PATH)?
  • ?嵌入式應用?:
    將常用腳本(如設備重啟腳本)放入/usr/local/bin
reboot_device  # 直接調用,無需路徑

?注意?:

  • 嵌入式設備存儲空間有限,避免添加過多全局腳本
5. ?輸入重定向/管道?
  • ?嵌入式應用?:
    通過SSH遠程執行嵌入式設備中的臨時腳本:
echo "ls /etc" | ssh root@192.168.1.100  # 直接執行單行命令
  • ?注意?:
    • 適用于資源受限設備,無需存儲腳本文件。

嵌入式開發中推薦使用?source?的場景?

?場景??原因?
配置交叉編譯環境需要將工具鏈路徑(如ARM_TOOLCHAIN)持久化到當前Shell環境,供后續編譯使用。
加載設備驅動模塊腳本中包含insmod加載驅動命令,需直接作用于當前系統環境。
定義調試函數/別名快速調用設備調試命令(如alias logdump="dmesg | grep ERROR")。

總結?

  • ?優先使用?source?:在需要?環境變量或命令持久化?時(如初始化開發環境)。
  • ?直接執行腳本?:適用于?獨立任務?(如編譯、打包)。
  • ?注意Shell兼容性?:嵌入式設備可能使用ashdash,需測試腳本語法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73726.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73726.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MES系統需要采集的數據及如何采集

?數據采集在企業信息化建設中占據著舉足輕重的地位&#xff0c;是實現物料跟蹤、生產計劃制定、產品歷史記錄維護以及其他生產管理活動的基石。數據的準確性和實時性直接關系到企業信息化能否成功落地&#xff0c;是企業邁向高效生產的關鍵因素。 數據收集對于MES制造執行系統…

閉環管理:借助數字化管理平臺實現客戶反饋的價值升級

在競爭激烈的市場環境中&#xff0c;客戶反饋已成為企業優化服務、提升競爭力的核心資源。如何高效處理客戶反饋&#xff0c;將其轉化為企業持續改進的動力&#xff0c;是每個企業面臨的重要課題。作為服務管理數字化轉型服務商&#xff0c;瑞云服務云為大中型企業提供了一套完…

C++Primer學習(13.6 對象移動)

13.6 對象移動 新標準的一個最主要的特性是可以移動而非拷貝對象的能力。如我們在13.1.1節(第440頁)中所見&#xff0c;很多情況下都會發生對象拷貝。在其中某些情況下&#xff0c;對象拷貝后就立即被銷毀了。在這些情況下&#xff0c;移動而非拷貝對象會大幅度提升性能。 如我…

Uni-app頁面信息與元素影響解析

獲取窗口信息uni.getWindowInfo {pixelRatio: 3safeArea:{bottom: 778height: 731left: 0right: 375top: 47width: 375}safeAreaInsets: {top: 47, left: 0, right: 0, bottom: 34},screenHeight: 812,screenTop: 0,screenWidth: 375,statusBarHeight: 47,windowBottom: 0,win…

大模型 API 調用中的流式輸出與非流式輸出全面對比:原理、場景與最佳實踐

流式輸出與非流式輸出應用場景 流式輸出的理想應用場景 實時對話系統聊天機器人和虛擬助手客服系統和用戶支持平臺實時問答和教育輔導應用 漸進式內容生成代碼補全和編程輔助工具&#xff08;如 GitHub Copilot&#xff09;實時文檔協作和編輯系統創意寫作和內容創作平臺 用戶…

Problem A: 計算奇數和

補充&#xff08;牢騷&#xff09;&#xff1a; 必須要 Main 類&#xff0c;自己自定義的類不能跑&#xff0c;說實話我被惡心到了&#xff0c;真沒力扣好用。后面都默認為Main 類。真惡心&#xff0c;其實不止這一點。。。 1.題目問題 2.輸入 3.輸出 4.樣例 5.代碼實現 imp…

深度賦能!北京智和信通融合DeepSeek,解鎖智能運維無限可能

在數字化飛速發展的今天&#xff0c;傳統運維模式面臨著設備規模激增、故障復雜度攀升、人工響應滯后等多重挑戰。隨著DeepSeek、騰訊元寶等AI大模型的興起&#xff0c;為傳統運維模式帶來了新的變革。 北京智和信通基于DeepSeek大模型技術&#xff0c;將AI和運維場景深度融合&…

2024年第五屆MathorCup數學應用挑戰賽大數據競賽復賽論文

2024年第五屆MathorCup數學應用挑戰賽——大數據競賽 復賽(二等獎)論文 本人親自與隊友完成的論文&#xff0c;進入復賽但由于和亞太時間沖突&#xff0c;身體很累最后放棄了復賽并沒有參賽…最后獲二等獎&#xff1b; 雖然如果參加的話一等獎問題應該不大&#xff0c;但是分配…

性能測試~

1.什么是性能測試 1.什么是性能 就像這兩個車一樣,雖然都是代步工具,構造都是一樣的,但是路虎的發動機要比捷達好.路虎的百米加速卻是比捷達快的,我們就知道路虎的性能要比捷達好 . 那么什么是軟件的性能呢?我們分析一下 2.常見的性能測試指標 2.1并發數 并發數是指在同一…

【極速版 -- 大模型入門到進階】LORA:大模型輕量級微調

文章目錄 &#x1f30a; 有沒有低成本的方法微調大模型&#xff1f;&#x1f30a; LoRA 的核心思想&#x1f30a; LoRA 的初始化和 r r r 的值設定&#x1f30a; LoRA 實戰&#xff1a;LoraConfig參數詳解 論文指路&#xff1a;LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE M…

【論文分析】無人機軌跡規劃,Fast-Planner:實時避障+全局最優的路徑引導優化算法

這篇論文《Robust Real-time UAV Replanning Using Guided Gradient-based Optimization and Topological Paths》由香港科技大學提出&#xff0c;主要針對無人機&#xff08;UAV&#xff09;在復雜環境中的實時軌跡重新規劃問題&#xff0c;提出了一種結合梯度優化和拓撲路徑搜…

禪道品牌全面戰略升級:開創項目管理國產化替代新格局

2025年&#xff0c;禪道軟件完成企業品牌戰略深度升級。此次升級&#xff0c;從產品力、服務力到生態圈構建等方面進行了全面優化&#xff0c;以更智慧的解決方案、更開放的生態布局&#xff0c;更安全的國產化解決方案&#xff0c;助力企業實現從“工具應用”到“價值創造”的…

PyTorch處理數據--Dataset和DataLoader

在 PyTorch 中&#xff0c;Dataset 和 DataLoader 是處理數據的核心工具。它們的作用是將數據高效地加載到模型中&#xff0c;支持批量處理、多線程加速和數據增強等功能。 一、Dataset&#xff1a;數據集的抽象? Dataset 是一個抽象類&#xff0c;用于表示數據集的接口。你…

Android 藍牙/Wi-Fi通信協議之:經典藍牙(BT 2.1/3.0+)介紹

在 Android 開發中&#xff0c;經典藍牙&#xff08;BT 2.1/3.0&#xff09;支持多種協議&#xff0c;其中 RFCOMM/SPP&#xff08;串口通信&#xff09;、A2DP&#xff08;音頻流傳輸&#xff09;和 HFP&#xff08;免提通話&#xff09;是最常用的。以下是它們在 Android 中的…

R002-云計算

1 概念 英文名&#xff1a;Cloud Computing 核心:云計算的核心概念就是以互聯網為中心&#xff0c;在網站上提供快速且安全的云計算服務與數據存儲&#xff0c;讓每一個使用互聯網的人都可以使用網絡上的龐大計算資源與數據中心 2.分類 基礎設施即服務&#xff08;IaaS)它向…

降維(DimensionalityReduction)基礎知識2

文章目錄 五、基于局部結構保持的降維1、Laplacian Eigenmaps&#xff08;拉普拉斯特征映射&#xff09;&#xff08;1&#xff09;鄰接矩陣&#xff08;2&#xff09;圖論基礎&#xff08;3&#xff09;Laplace算子1、散度&#xff08;Divergence&#xff09;2、拉普拉斯算子3…

物聯網中的物模型是什么意思,在嵌入式軟件開發中如何體現?

1. 物模型的概念 物模型&#xff08;Thing Model&#xff09;是物聯網中對物理設備或虛擬設備的抽象描述&#xff0c;定義了設備的屬性、事件和服務。它是設備與云平臺或其他設備之間交互的基礎&#xff0c;用于統一描述設備的能力和行為。 1.1 物模型的組成 屬性&#xff0…

【藍橋杯】單片機設計與開發,PWM

一、PWM概述 用來輸出特定的模擬電壓。 二、PWM的輸出 三、例程一&#xff1a;單片機P34引腳輸出1kHZ的頻率 void Timer0Init(void);unsigned char PWMtt 0;void main(void) {P20XA0;P00X00;P20X80;P00XFF;Timer0Init();EA1;ET01;ET11;while(1);}void Timer0Init(void) //1…

C#中,什么是委托,什么是事件及它們之間的關系

1. 委托&#xff08;Delegate&#xff09; 定義與作用 ?委托?是類型安全的函數指針&#xff0c;用于封裝方法&#xff0c;支持多播&#xff08;鏈式調用&#xff09;。?核心能力?&#xff1a;將方法作為參數傳遞或異步回調。 使用場景 回調機制&#xff08;如異步操作完…

從替代到超越,禪道國產化替代解決方案2.0發布!

3月22日&#xff0c;由禪道攜手上海惠艾信息科技、麥哲思科技共同舉辦的禪道?中國行北京站活動圓滿落下帷幕。 除深入探究AI賦能研發項目管理外&#xff0c;禪道在活動現場正式發布了《禪道國產化替代解決方案2.0》&#xff0c;助力企業全方位構建自主可控的研發項目管理新體…