makefile
@$ 代替目标体后的依赖
@ 关闭回显
#注释
:= 前面的变量不能通过后面的变量来定义
+= 可以实现给变量追加值
?=如果变量已经在前面定义过了,那么后面的定义就无效
常用函数
patsubst
格式:$ (patsubset模式参数,参数1,参数2)
功能:把参数2中符合模式参数的单词(单词是指参数中被空格隔开的字符串)替换成参数1
返回值:被替换后的参数2
wildcard
格式:$(wildcard模式参数)
功能:列出当前目录下所有符合模式参数的文件名
返回值:当前目录下所有符合模式参数的文件名
addsuffix
格式: $ (addsuffix 参数1,参数2)
功能:在参数2中的每个单词加上后缀参数1
返回值:加上后缀的所有单词
foreach
格式: $ (foreach 变量参数,参数1,表达式)
功能:循环取出参数1中的单词赋给变量参数,然后运行表达式
返回值:表达式的运行结果
call
格式: $ (call 变量参数,参数…)
功能:循环把参数依次赋给变量参数中的
(
1
)
、
(1)、
(1)、(2)…
返回值:赋值后的变量值
shell
shell是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统
shell本身是一个用c语言编写的程序,他是用户使用Linux的桥梁
shell既是一种命令语言,又是一种程序设计语言。作为命令语言,他互动式地解释和执行用户输入的命令
种类
Bourne shell(sh)(系统自带)
Korn shell(ksh)
Bourne Again shell(bash)(系统自带)
C shell(包括csh and tcsh)
TENEX/TOPS C shell(tcsh)
程序基础
shell文件必须以 #!/bin/sh 开头
要使文件可执行 chmod +x filename
执行文件 ./filename
变量赋值时 “=” 前后不能加空格
$?获取函数返回值
默认变量
$#:传入脚本的命令行参数个数
$ *:所有命令行参数值,在各个参数值间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数