一.client的程序
1.查看功能目录,先看scripts的目录下面的makefile
CC := gcc //gcc编译器
CFLAGS := -Wall -O3。
Libs = -lpthread //链接的库
Target := client //生成的目标
Source := $ (wildcard src/.c); //列出当前目录下src目录的所有.c文件 source=src/main.c src/add.c
Objs := (patsubst(patsubst (patsubst %.c,%.o,(patsubst(Source)) //把source变量里的.c文件编译成.o文件 objs:src/main.o src/add.o
Modules += check_putin pack_message main //当前软件代码所有的功能目录
AllObjs := (addsuffix/src/∗.o,(addsuffix/src/∗.o, (addsuffix /src/.o,(addsuffix/src/∗.o,(Modules)) //allobjs=check_putin/src/**.o main/src/.o,列出所有功能目录下的src目录下.o文件
2.总控的makefile
include scripts/Makefile //导入makefile,可以使用makefile定义的变量;
modules_make = $(MAKE) -C (1);//进入(1);//进入 (1); // 进入(1);//进入(1)所对应的目录,执行make命令
modules_clean = $(MAKE) clean -C $(1);//执行maky clean 命令
.PHONY: all mm mc clean
all: $(Target) //找到第一个目标;
mm:
@ (foreachn,(foreachn, (foreach n,(foreachn,(Modules),(callmodulesmake,(callmodulesmake, (call modules_make,(callmodulesmake,(n))) //执行的第一行代码,进入各个功能目录执行make命令
mc:
@ (foreachn,(foreachn, (foreach n,(foreachn,(Modules),(callmodulesclean,(callmodulesclean, (call modules_clean,(callmodulesclean,(n)))//进入各个功能目录,执行make clean 命令
$(Target) : mm
$(CC) $(CFLAGS) -o $(Target) $(AllObjs) $(Libs)
//gcc -Wall -o3 -o client check_putin/src/.o main/src/.o packmessage/src/.o -lpthread 把所有.o文件链接成client
@ echo $(Target) make done! //echo打印
clean : mc
rm -rf
(foreach b, (a),(a), (a),(a),$(b).c)
输出的结果为“x.c y.c z.c”
call:循环赋值
cd 子目录 && $(MAKE)
mkdir -p add/src/
mv add.c add /src
tree
touch add/Makefile
二.改编小型计算器
1.建立功能目录
mkdir -p add/src sub/src div/src mul/src main/src scripts
mv add.c add/src/
mv sub.c add/src/
…
tree //apt install tree 装入命令,
touch add/Makefile
touch sub/Makefile
…
touch scripts/Makefile
cp -r …/client/Makefile //直接拷贝
cd scripts/ //进入scripts
cp …/…/client/scripts/Makefile.(拷贝到当前scripts下面)
cp …/client/check_putin/Makefile add/(拷贝5步,add,sub,div,mul,main)
…
vim scripts//改功能目录
把modules后面的功能目录改成 main add sub div mul
把目标改成cal,链接库改成 -lm
make_clean
make
到此,编译成功
执行./cal
三.脚本——shell编程(脚本:批处理)
1.什么是shell?
①命令解析器:将用户输入的命令解析,调用相应的命令的可执行文件;
②脚本语言;
shell解析器到根目录/bin或/sbin,
常用的shell:sh,bash;
2.变量
变量=值;(等号两边不能有空格),如果是字符串,需要加“”
echo $a (不需要再后面加括号)
3.命令行参数(命令后面跟的参数)
Shell脚本传参,使用以下变量接收传入的参数
echo $0 #脚本名
echo $1 #第一个参数值
echo $2 #第二个参数值
echo $n #第n个参数值
echo $# #参数的个数
echo $$ #进程pid
echo $@ #所有参数
4.函数
定义函数;
函数传参,不需要加括号;
if语句条件判断之数字判断语法
$number1 -eq $nubmer2 #是否相等 equal
$number1 -ne $nubmer2 #是否不相等 not equal
$number1 -gt $nubmer2 #是否大于 greater than
$number1 -ge $nubmer2 #是否大于等于 greater or equal
$number1 -lt $nubmer2 #是否小于 less than
$number1 -le $nubmer2 #是否小于等于 less or equal
if 【 -z $a 】 //判断a是否为空;【前后都要有空格】
“&&”条件成立,执行&&后面的代码;
“||”条件不成立,执行||后面的代码;
for语句的语法:
for 变量名 in 值
do
执行的程序代码
3.24课堂总结
猜你喜欢
转载自blog.csdn.net/maxiaotiaobutiao/article/details/105218393
今日推荐
周排行