首页 > 系统相关 >makefile和shell都怎么编写,举例说明

makefile和shell都怎么编写,举例说明

时间:2024-06-14 19:33:28浏览次数:13  
标签:Shell helper makefile Makefile shell myapp main backup 举例说明

Makefile和Shell脚本是两种不同的编程工具,它们各自有不同的用途和编写方式。

Makefile

Makefile是一种用于自动化编译的工具,它使用Makefile文件来定义编译规则。Makefile通常用于编译源代码,生成可执行文件或库文件。Makefile的基本结构包括目标(target)、依赖(dependencies)和命令(commands)。

示例:

假设我们有一个简单的C程序,包含两个源文件main.chelper.c,我们想要编译它们生成一个名为myapp的可执行文件。

makefile

# Makefile 示例

# 默认目标
all: myapp

# 编译 myapp
myapp: main.o helper.o
	gcc -o myapp main.o helper.o

# 编译 main.o
main.o: main.c
	gcc -c main.c

# 编译 helper.o
helper.o: helper.c
	gcc -c helper.c

# 清理编译生成的文件
clean:
	rm -f *.o myapp

在这个Makefile中,all是默认目标,它依赖于myappmyapp依赖于main.ohelper.o,这些.o文件是编译后的目标文件。clean目标用于清理编译生成的文件。

Shell脚本

Shell脚本是一种使用Shell命令编写的脚本,它可以在Shell环境中执行。Shell脚本通常用于自动化任务,如文件操作、系统管理等。

示例:

假设我们想要创建一个Shell脚本来备份当前目录下的所有文件,并将备份文件保存到/backup目录。

bash

#!/bin/bash

# 备份脚本示例

# 检查备份目录是否存在,不存在则创建
if [ ! -d /backup ]; then
    mkdir /backup
fi

# 备份当前目录下的所有文件
for file in *; do
    if [ -f "$file" ]; then
        cp "$file" /backup/
    fi
done

echo "备份完成!"

在这个Shell脚本中,我们首先检查/backup目录是否存在,如果不存在则创建它。然后,我们遍历当前目录下的所有文件,如果文件存在,则将其复制到/backup目录。最后,脚本输出“备份完成!”的消息。

要运行Shell脚本,你需要给脚本文件添加执行权限:

chmod +x backup_script.sh

然后,你可以通过以下命令执行脚本:

./backup_script.sh

标签:Shell,helper,makefile,Makefile,shell,myapp,main,backup,举例说明
From: https://www.cnblogs.com/ZGLi/p/18248496

相关文章

  • 编写一个.sh的脚本,然后通过 shell 脚本执行 Makefile 文件并把生成的可执行文件下载到
    要编写一个shell脚本来执行Makefile并下载生成的可执行文件到开发板,你需要确保开发板可以通过某种方式(如SSH、FTP、SCP等)访问。以下是一个简单的shell脚本示例,它使用scp命令将可执行文件从本地机器复制到开发板。假设你的开发板可以通过SSH访问,并且你已经配置了SSH密钥认证,这样你......
  • 编写一个 Makefile 文件,对阶段项目一的代码进行自动化编译
    为了编写一个Makefile文件来自动化编译一个项目,我们需要知道项目中包含哪些源文件以及它们是如何组织的。假设我们有一个简单的项目,它包含两个C源文件`main.c`和`helper.c`,以及一个头文件`helper.h`。我们希望编译这些文件生成一个名为`project`的可执行文件。以下是一个简单的M......
  • 运维shell脚本之测试mysql密码正确与否
    shell脚本实战:测试mysql密码正确与否在迁移过程中,常有批量迁移数据库的情况,因此在割接前,需要批量测试一次割接后的数据库信息是否配置正常,故写了一个shell脚本用于测试数据库密码是否正确有误,具体步骤如下:测试前,需要测试当前服务器是否已安装mysql,可通过命令进行测试:mysq......
  • 简单的Makefile文件解析
    Makefile文件解析#commonmakefileheader#"$(变量)"、"$makefile内置变量"表示变量值DIR_INC=../../include #头文件相对路径DIR_BIN=../../bin #可执行文件的相对路径DIR_LIB=../../libs #库的相对路径TARGET =iat_online_record_sample #目标变量BIN_TA......
  • 《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......
  • 禁止Windows用户使用cmd、powershell、注册表、*.bat脚本、修改网卡IP等操作
    如果你想让你的计算机或域控用户的计算机禁止使用cmd、powershell、注册表、bat脚本、修改网卡IP等操作1. 使用本地组策略(如果是本地用户)如果是非域用户,如果你在Windows10Pro或更高版本上,可以使用本地组策略(LocalGroupPolicy)来限制访问。打开“本地组策略编辑器”(gpedit.......
  • Oracle报错:“Error in invoking target ‘agent nmhs’ of makefile...”
    Oracle报错:“Errorininvokingtarget‘agentnmhs’ofmakefile...”  前言:Oracle在安装过程中的报错一定要重视,这决定你后续是否能完成安装以及是否能使用。我这边会陆续汇总一些报错现象以及解决方案共享。##InstallProduct86%报错信息:“Errorininvokingtarget'......
  • shell语言
    shell既是应用程序,也是一种脚本语言。开头以bash为解释器:#!/bin/bash变量:系统变量、用户变量、环境变量系统变量:HOME:当前用户的主目录PATH:定义了Shell在查找命令时应该搜索的目录列表。USER或USERNAME(取决于系统):当前登录的用户名。PWD:当前工作目录的......
  • 【jmeter】使用beanshell simpler测试redis性能
    一、场景   由于redisdataset支持的类型有限,所以采取使用beanshellsampler 二、安装jedis包https://mvnrepository.com/artifact/redis.clients/jedis 三、添加BeanShellSampler添加脚本importjava.util.Map;importredis.clients.jedis.Jedis;importorg.a......