linu驱动开发笔记6驱动模块

上传人:s9****2 文档编号:493707772 上传时间:2022-10-16 格式:DOCX 页数:31 大小:45.86KB
返回 下载 相关 举报
linu驱动开发笔记6驱动模块_第1页
第1页 / 共31页
linu驱动开发笔记6驱动模块_第2页
第2页 / 共31页
linu驱动开发笔记6驱动模块_第3页
第3页 / 共31页
linu驱动开发笔记6驱动模块_第4页
第4页 / 共31页
linu驱动开发笔记6驱动模块_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《linu驱动开发笔记6驱动模块》由会员分享,可在线阅读,更多相关《linu驱动开发笔记6驱动模块(31页珍藏版)》请在金锄头文库上搜索。

1、linux 驱动开发笔记 6 驱动模块之 Makefile 文件本来打算过几天再总结 makefile 文件,既然现在用到 Makefile 文件,就在这里把 SHELL 和 Makefile 都总结一下,因为 Makefile 文件中会用到 Shell 中的一些语 法和变量。一、 Shell 的使用我们可以使用任意一种文字编辑器,比如 gedit、kedit、emacs、vi 等来编写 shell 脚本,它必须以如下行开始(必须放在文件的第一行):#!/bin/sh注意:最好使用“ !/bin/bash而不是“ !/bin/sh”,如果使用tc shell改为 tcsh,其他类似。符号#!用

2、来告诉系统执行该脚本的程序,本例使用/bin/sh。编辑结束并保存后, 如果要执行该脚本,必须先使其可执行:chmod +x filename 此后在该脚本所在目录下,输入 ./filename 即可执行该脚本。Shell 编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z) 中间不能有空格,可以使用下划线(_)不能使用标点符号不能使用 bash 里的关键字(可用 help 命令查看保留关键字) 需要给变量赋值时,可以这么写:变量名=值要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候, 不能在=两边留空格 )#!/bin

3、/sh# 对变量赋值: a=hello world #等号两边均不能有空格存在# 打印变量 a 的值:echo A is: $a挑个自己喜欢的编辑器,输入上述内容,并保存为文件firs t,然后执行chmod +x first 使其可执行,最后输入 ./first 执行该脚本。其输出结果如下: A is: hello world有时候变量名可能会和其它文字混淆,比如:num=2echo this is the $numnd上述脚本并不会输出this is the 2nd而是this is the ;这是由于shell 会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用

4、花括号来告诉shell要打印的是num变量:num=2echo this is the $numnd其输出结果为: this is the 2nd 注意花括号的位置:num=2echo this is the $numnd其输出结果为: this is the 2nd需要注意 shell 的默认赋值是字符串赋值。比如:var=1 var=$var+1echo $var 打印出来的不是2而是11。为了达到我们想要的效果有以下几种表达方式: let var+=1var=$var+1var二、expr $var + 1#注意加号两边的空格,否则还是按照字符串的方式赋值。 注意:前两种方式在bash下

5、有效,在sh下会出错。let表示数学运算,expr用于整数值运算,每一项用空格隔开,$将中括号内 的表达式作为数学运算先计算结果再输出。Shell脚本中有许多变量是系统自动设定的,我们将在用到这些变量时再作说 明。除了只在脚本内有效的普通shell变量外,还有环境变量,即那些由export 关键字处理过的变量linux 中 shell 变量$#,$,$0,$1,$2 的含义解释:变量说明:$Shell 本身的 PID (ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag 一览$*所有参数列表。如$*用括起

6、来的情况、以$1 $2$n的形式输出所有 参数。$所有参数列表。如$用括起来的情况、以$1 $2$n的形式输 出所有参数。$#添加到Shell的参数个数$0Shell本身的文件名$l$n添加到Shell的各参数值。$1是第1参数、$2是第2参数。示例:1 #!/bin/bash3 printf Thecompletelis tis%sn $4printfThecompletelis tis%sn$!5printfThecompletelis tis%sn$?6printfThecompletelis tis%sn$*7printfThecompletelis tis%sn$8printfThe

7、completelis tis%sn$#9printfThecompletelis tis%sn$010printfThecompletelis tis%sn$111printfThecompletelis tis%sn$2结果:Ariclocalhost $ bash params.sh 123456 QQThe completelist is24249Thecompletelis tisThecompletelis tis0Thecompletelis tis123456QQThecompletelis tis123456Thecompletelis tisQQThecompletelis

8、 tis2Thecompletelis tisparams.shThecompletelis tis123456Thecompletelis tisQQ明易2006-01-03 18:32Linux Shell脚本入门-我们的技术是你的! http:/ Linux脚本编写基础1.1语法基本介绍1.1.1开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子 中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要执行该脚本,还必须使其可执行。要使脚本可执行:编译chmod +x filename这样才能用./f

9、ilename来运行1.1.2注释在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们 真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短 的时间内明白该脚本的作用及工作原理。-我们的技术是你的! http:/ 符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:#!/bin/sh#对变量赋值:a二hello world#现在打印变量a的内容:echo A is:echo $a有时候变量名很容易与其他文字混淆,比如:num=2echo this is the $numnd这并不会打印出this is the 2

10、nd,而仅仅打印this is the ,因为shell 会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num 变量:num=2echo t his is the $numnd这将打印:t his is the 2nd1.1.4环境变量由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因 为通常情况下仅仅在登录脚本中使用环境变量。1.1.5 Shell命令和流程控制在shell脚本中可以使用三类命令:1) Unix 命令:虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常 用的命令。这些命令通常是用来

11、进行文件和文字操作的。常用命令语法及功能echo some text:将文字内容打印在屏幕上ls:文件列表wc - l filewc -w filewc -c file:计算文件行数计算文件中的单词数计 算文件中的字符数cp sourcefile destfile: 文件拷贝mv oldname newname :重命名文件或移动文件rm file:删除文件grep pattern file:在文件内搜索字符串比如:grep searchstring file.txtcut -b colnum file:指定欲显示的文件内容范围,并将它们输出到标准 输出设备比如:输出每行第5个到第9个字符cu

12、t -b5-9 file. txt千万不要和cat命令混淆, 这是两个完全不同的命令cat file. txt:输出文件内容到标准输出设备(屏幕)上file some file:得到文件类型read var:提示用户输入,并将输入赋值给变量 sort file. txt:对file. txt文件中的行进行排序 uniq:删除文本文件中出现的行列比如:sort file. txt | uniq expr:进行数学运算 Example: add 2 and 3expr 2 + 3 find:搜索文件比如:根据文件名搜索find . -name filename -print tee:将数据输出到标

13、准输出设备(屏幕)和文件比如:somecommand | tee outfilebasename file:返回不包含路径的文件名比如:basename /bin/tux将 返回tuxdirname file:返回文件所在路径比如:dirname /bin/tux将返回/bin head file:打印文本文件开头几行tail file :打印文本文件末尾几行sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道) 读入文本,并将 结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。 不要和shell中的通配符相混淆。比如:将linuxfocus替换为 Linu

14、xFocus : cat text.file | sed s/linuxfocus/LinuxFocus/ new text.f ileawk: awk用来从文本文件中提取字段。缺省地,字段分割符是空格,可以 使用-F指定其他分割符。cat file. txt | awk -F, print $1 , $3 这里我们使用,作为字段分割 符,同时打印第一个和第三个字段。如果该文件内容如下:Adam Bor, 34, IndiaKerry Miller, 22, USA命令输出结果为:Adam Bor, IndiaKerry Miller, USA2)概念:管道,重定向和back tick这些不是系统命令,但是他们真的很重要。管道(|)将一个命令的输出作为另外一个命令的输入。grep hello file .txt | wc -l在f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号