当前位置: 技术问答>linux和unix
语法问题?
来源: 互联网 发布时间:2015-03-23
本文导语: module="skull" major='awk"\$2=="$module" {print \$1}" /proc/devices' 这一句对应在shell下是什么样的----- awk "$2=="skull" {print $1} /proc/devices awk 有这样的用法么,我知道他只是个转义符 major=一句为什么用'',和“”有什么不同...
module="skull"
major='awk"\$2=="$module" {print \$1}" /proc/devices'
这一句对应在shell下是什么样的----- awk "$2=="skull" {print $1} /proc/devices
awk 有这样的用法么,我知道他只是个转义符
major=一句为什么用'',和“”有什么不同,和不用又有什么不同
大家多帮帮欧!
major='awk"\$2=="$module" {print \$1}" /proc/devices'
这一句对应在shell下是什么样的----- awk "$2=="skull" {print $1} /proc/devices
awk 有这样的用法么,我知道他只是个转义符
major=一句为什么用'',和“”有什么不同,和不用又有什么不同
大家多帮帮欧!
|
我给你详细的的解释一下,不过要有分呀,你这个意思是将/proc/devices 的第一的字段给major,并且第二个字段为$module,即与变量module的值相等,是设备驱动编程里的内容吧。
首先指出你的一个错误那不是单引号,是撇号,我开始也被蒙过,就是tab键上边与~号在一起的那个键,这是不能换的,至于整个文本的意思我给你举个例子:
我/tmp/目录下有个dd文件内容如下:用cat命令查看如下:
[root@localhost tmp]# cat dd
123123 asdfasdf 1234124
122 asdf asdf
[root@localhost tmp]#
即有二行,每行有三个字段,现在我将第一个字段为122 的行的第三个字段值付给aa,代码如下:脚本名为a:用cat查看如下:
[root@localhost tmp]# cat a
#!/bin/bash
kk="122"
aa=`awk "\$1=="$kk" {print \$3}" /tmp/dd`
echo "aa is $aa"
[root@localhost tmp]#
执行如下,用调试语句显示如下:用bash -vx(我省略一些调试信息)
#!/bin/bash
kk="122"
+ kk=122
aa=`awk "\$1=="$kk" {print \$3}" /tmp/dd`
awk "$1=="$kk" {print $3}" /tmp/dd
++ awk '$1=="122" {print $3}' /tmp/dd
+ aa=asdf
echo "aa is $aa"
+ echo 'aa is asdf'
aa is asdf
[root@localhost tmp]#
上面显示aa的值已经为asdf了。
总之,第一应会用调试,你就明白怎么用了,第二那个是撇号。
很详细了吧,我写的都是调试通过的,我拷贝屏幕举例子的,该给分了吧,如果没分
我再也不会花时间这么回答了。
首先指出你的一个错误那不是单引号,是撇号,我开始也被蒙过,就是tab键上边与~号在一起的那个键,这是不能换的,至于整个文本的意思我给你举个例子:
我/tmp/目录下有个dd文件内容如下:用cat命令查看如下:
[root@localhost tmp]# cat dd
123123 asdfasdf 1234124
122 asdf asdf
[root@localhost tmp]#
即有二行,每行有三个字段,现在我将第一个字段为122 的行的第三个字段值付给aa,代码如下:脚本名为a:用cat查看如下:
[root@localhost tmp]# cat a
#!/bin/bash
kk="122"
aa=`awk "\$1=="$kk" {print \$3}" /tmp/dd`
echo "aa is $aa"
[root@localhost tmp]#
执行如下,用调试语句显示如下:用bash -vx(我省略一些调试信息)
#!/bin/bash
kk="122"
+ kk=122
aa=`awk "\$1=="$kk" {print \$3}" /tmp/dd`
awk "$1=="$kk" {print $3}" /tmp/dd
++ awk '$1=="122" {print $3}' /tmp/dd
+ aa=asdf
echo "aa is $aa"
+ echo 'aa is asdf'
aa is asdf
[root@localhost tmp]#
上面显示aa的值已经为asdf了。
总之,第一应会用调试,你就明白怎么用了,第二那个是撇号。
很详细了吧,我写的都是调试通过的,我拷贝屏幕举例子的,该给分了吧,如果没分
我再也不会花时间这么回答了。