[linux device driver] Chapter 03:从scull_load了解awk

来源:互联网 发布:windows命令行工具 编辑:程序博客网 时间:2024/05/16 10:53

scull_load里有这样一句与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程序设计语言

0 0
原创粉丝点击