[linux device driver] Chapter 03:从scull_load了解awk
2015-03-23 12:18
302 查看
scull_load里有这样一句与awk相关的语句,从这里我们引入awk的讨论:
那么,为什么在awk后面使用这么多斜杠呢?
首先我们需要了解bash中双引号的使用。
在bash中,双引号只解释变量名前缀$、后引符`、转定义符\。
在这里,假如module=usb,那么awk必须使用第二列与”usb“进行比较,因为双引号内特殊字符除了刚才上面说的那三个,其他的都必须使用转定义,所以必须在双引号前加上转定义符,于是就有\"$module\"。
同样,为了不让双引号解释$1和$2,需要在前面加上转定义符号\,于是就有\$2,但是在bash脚本中$2还是传入参数,于是仍然需要在前面再加上转定义符号\,最后就成了\\$2,对于每一个引号内以$开头的的内容,前面必须加上两个转定义符\\。
上面的例子是从/proc/devices中查找scullc模块,并得到主设备号,major就是其主设备号。
另:
AWK简明教程
linux awk命令详解
AWK程序设计语言
major=`cat /proc/devices | awk "\\$2==\"$module\" {print \\$1}"`
那么,为什么在awk后面使用这么多斜杠呢?
首先我们需要了解bash中双引号的使用。
在bash中,双引号只解释变量名前缀$、后引符`、转定义符\。
在这里,假如module=usb,那么awk必须使用第二列与”usb“进行比较,因为双引号内特殊字符除了刚才上面说的那三个,其他的都必须使用转定义,所以必须在双引号前加上转定义符,于是就有\"$module\"。
同样,为了不让双引号解释$1和$2,需要在前面加上转定义符号\,于是就有\$2,但是在bash脚本中$2还是传入参数,于是仍然需要在前面再加上转定义符号\,最后就成了\\$2,对于每一个引号内以$开头的的内容,前面必须加上两个转定义符\\。
上面的例子是从/proc/devices中查找scullc模块,并得到主设备号,major就是其主设备号。
另:
AWK简明教程
linux awk命令详解
AWK程序设计语言
相关文章推荐
- [linux device driver] Chapter 03:以scull_load为引,详解Bash的位置参数和内部参数
- [linux device driver] Chapter 03:从scull_load学习小括号,中括号,和大括号的区别
- [linux device driver] Chapter 03:以scull_load为引,详解shell逻辑运算、基本运算、位运算
- [linux device driver]Chapter 03:scull_load中涉及到的bash命令 exit
- [linux device driver] Chapter 03:scull_load脚本理解
- [linux device driver] Chapter 03:以scull_load为例,详解mknod命令
- [linux device driver]Chapter 03:Scull_load中涉及到的群组权限之staff\wheel
- [linux device driver] Chapter 03:以scull_load为例,讲解bash中反单引号`、双引号等的作用
- [linux device driver] Chapter 03:make输出重定向
- [linux device driver] Chapter 03:scullc_open理解
- [linux device driver] Chapter 03:字符设备注册学习
- [linux device driver] Chapter 03:IS_ERR的理解
- 关于linux load average的深入了解
- LINUX字符设备驱动程序实例(chapter3 scull)
- [linux device driver] Chapter 04:Magic SysRq Key
- [linux device driver] Chapter 14:kobject_init的理解
- linux学习之linux百问4,awk了解
- [linux device driver] Chapter 04:使用/proc文件系统查询调试
- 理解LINUX LOAD AVERAGE的误区
- 【转载】Linux工具之AWK 1.简明入门