首页 > 系统相关 >编写一个.sh的脚本,然后通过 shell 脚本执行 Makefile 文件并把生成的可执行文件下载到开发板中

编写一个.sh的脚本,然后通过 shell 脚本执行 Makefile 文件并把生成的可执行文件下载到开发板中

时间:2024-06-14 19:21:23浏览次数:24  
标签:脚本 可执行文件 shell Makefile 开发板 sh scp

要编写一个shell脚本来执行Makefile并下载生成的可执行文件到开发板,你需要确保开发板可以通过某种方式(如SSH、FTP、SCP等)访问。以下是一个简单的shell脚本示例,它使用scp命令将可执行文件从本地机器复制到开发板。

假设你的开发板可以通过SSH访问,并且你已经配置了SSH密钥认证,这样你就不需要输入密码。同时,假设你的开发板的IP地址是192.168.1.100,你的用户名是user

创建一个名为deploy.sh的shell脚本文件,并添加以下内容:

bash

#!/bin/bash

# 定义开发板的IP地址、用户名和可执行文件名
DEPLOY_IP="192.168.1.100"
DEPLOY_USER="user"
PROJECT_NAME="project"

# 编译项目
make

# 检查Makefile是否成功执行
if [ $? -ne 0 ]; then
    echo "Makefile failed to execute."
    exit 1
fi

# 获取可执行文件的路径
EXECUTABLE_PATH="./${PROJECT_NAME}"

# 检查可执行文件是否存在
if [ ! -f "${EXECUTABLE_PATH}" ]; then
    echo "Executable file not found."
    exit 1
fi

# 将可执行文件复制到开发板
scp "${EXECUTABLE_PATH}" "${DEPLOY_USER}@${DEPLOY_IP}:~/"

# 检查scp命令是否成功执行
if [ $? -ne 0 ]; then
    echo "Failed to copy executable to the development board."
    exit 1
else
    echo "Executable file copied to the development board successfully."
fi

确保你的脚本文件具有执行权限:

chmod +x deploy.sh

运行脚本:

./deploy.sh      #source deploy.sh

这个脚本首先执行Makefile来编译项目。如果编译成功,它会检查生成的可执行文件是否存在。如果存在,脚本会使用scp命令将可执行文件复制到开发板的指定路径。如果scp命令执行成功,脚本会输出成功消息;如果失败,脚本会输出错误消息并退出。

此外,还可以使用FTP或通过USB存储设备。

标签:脚本,可执行文件,shell,Makefile,开发板,sh,scp
From: https://www.cnblogs.com/ZGLi/p/18248489

相关文章

  • 编写一个 Makefile 文件,对阶段项目一的代码进行自动化编译
    为了编写一个Makefile文件来自动化编译一个项目,我们需要知道项目中包含哪些源文件以及它们是如何组织的。假设我们有一个简单的项目,它包含两个C源文件`main.c`和`helper.c`,以及一个头文件`helper.h`。我们希望编译这些文件生成一个名为`project`的可执行文件。以下是一个简单的M......
  • 运维shell脚本之测试mysql密码正确与否
    shell脚本实战:测试mysql密码正确与否在迁移过程中,常有批量迁移数据库的情况,因此在割接前,需要批量测试一次割接后的数据库信息是否配置正常,故写了一个shell脚本用于测试数据库密码是否正确有误,具体步骤如下:测试前,需要测试当前服务器是否已安装mysql,可通过命令进行测试:mysq......
  • GEE C28 在GEE中使用脚本和资源协作 Collaborating in Earth Engine with Scripts a
    导语:许多用户发现自己在某些时候需要与地球引擎中的其他人协作。学生可能需要在一个小组项目中工作,来自不同组织的人可能想要一起合作进行研究,或者人们可能想要与他人共享他们创建的脚本或资产。将展示如何与他人协作并分享工作。学习要点:•了解何时共享脚本或资产是重要的。......
  • 简单的Makefile文件解析
    Makefile文件解析#commonmakefileheader#"$(变量)"、"$makefile内置变量"表示变量值DIR_INC=../../include #头文件相对路径DIR_BIN=../../bin #可执行文件的相对路径DIR_LIB=../../libs #库的相对路径TARGET =iat_online_record_sample #目标变量BIN_TA......
  • Python脚本中使用 if 语句导致的错误代码
    在Python脚本中使用if语句是一种常见的控制流程结构,用于根据条件决定程序的执行路径。当使用Python中的if语句时,可能会导致一些常见的错误。下面就是我经常遇到的错误代码示例及其可能的原因和解决方法,希望对大家有些帮助,少走弯路。1、问题背景一位用户在编写一......
  • Linux脚本语言入门.md
    0、shell介绍1)Shell是什么?Shell是一个命令行解释器,它为用户提供一个详Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中......
  • 《Linux命令行与shell脚本编程大全(第3版)》读书笔记
    一、初识linuxshell1、什么是linuxLinux可划分为以下四部分:Linux内核、GNU工具(如shell)、图形化桌面环境、应用软件1)深入探究linux内核内核主要负责以下四种功能:系统内存管理、软件程序管理、硬件设备管理、文件系统管理2)GNU工具(1)核心GNU工具:GNU项目的主旨在于为Unix......
  • systemctl管理shell脚本开机自启动
    1.使用场景说明   如果想使用我们的systemctl管理shell脚本开机自启动,可以试试如下方法2.systemctl管理配置中#要使用systemctl开机启动的脚步路径ls/data/shell/SO/container_management.sh #配置systemctl管理文件[root@localhostSO]#cat/etc/systemd/system......
  • jmeter做一个注册的脚本
    前置处理器:在请求之前做的操作在前置处理器里后置处理器:收到响应之后的操作在后置处理器里1、抓包获取注册接口   2、复制URL、参数等信息到jmeter  3、jmeter添加监听器-察看结果树运行脚本查看结果 啥意思没明白,反正脚本没成功,如果脚本成功响应数据应该是类......
  • 禁止Windows用户使用cmd、powershell、注册表、*.bat脚本、修改网卡IP等操作
    如果你想让你的计算机或域控用户的计算机禁止使用cmd、powershell、注册表、bat脚本、修改网卡IP等操作1. 使用本地组策略(如果是本地用户)如果是非域用户,如果你在Windows10Pro或更高版本上,可以使用本地组策略(LocalGroupPolicy)来限制访问。打开“本地组策略编辑器”(gpedit.......