以下内容有些是别人的博客,直接贴出连接,算是整理吧
1.Makefile 中:= ?= += =的区别
https://www.cnblogs.com/wanghuaijun/p/8092747.html
2. Makefile 中的subst
https://blog.csdn.net/qq_40732350/article/details/81221454
例 WORK_P=$ {subset /make_linux,$(PWD)}
假设pwd结果
/home/hyo/test_prj/make_linux
其结果就是把/makelinux换成空,相当于取上一级目录
/home/hyo/test_prj
3. echo $*
echo+shell中的特殊变量
变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。
例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ echo $ $
15415
特殊变量列表
变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
4.awk使用
https://www.linuxprobe.com/linux-awk-clever.html
组合一起实现删除inet6地址
5.ifeq使用
ifeq和ifneq 无法使用或条件
ifeq ($ (ROUTER), USER1)
else ifeq ($ (ROUTER), USER2)
endif
可以通过findstring 判断多个条件
ifeq ($(findstring $(ROUTER), USER1 USER2), &(RTOUTER))