Makefile和Shell脚本是两种不同的编程工具,它们各自有不同的用途和编写方式。
Makefile
Makefile是一种用于自动化编译的工具,它使用Makefile文件来定义编译规则。Makefile通常用于编译源代码,生成可执行文件或库文件。Makefile的基本结构包括目标(target)、依赖(dependencies)和命令(commands)。
示例:
假设我们有一个简单的C程序,包含两个源文件main.c
和helper.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
是默认目标,它依赖于myapp
。myapp
依赖于main.o
和helper.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