当前位置:  技术问答>linux和unix

shell awk- print问题

    来源: 互联网  发布时间:2017-01-14

    本文导语:  照着书上抄了段代码,是shell脚本加载字符设备模块,但是有一句话老是出错,希望帮分析下 shell:  device="test_dev" major=‘cat /proc/devices | awk "\$2=="$device" {print \$1}"’ mknod /dev/${device} c ${major} 0 书上是这么写的...

照着书上抄了段代码,是shell脚本加载字符设备模块,但是有一句话老是出错,希望帮分析下

shell:
 device="test_dev"
major=‘cat /proc/devices | awk "\$2=="$device" {print \$1}"’
mknod /dev/${device} c ${major} 0
书上是这么写的,不知到写那么多 反斜杠有什么用?还有运行shell的时候总是会报错:  mknod: 额外的操作数 "|"

我将上面的指令直接在终端中输入试了下,
major='cat /proc/devices | awk "\$2=="test_dev" {print \$1}"'
正常输出之后又会出现这样错误:
cat: |: 没有那个文件或目录
cat: awk: 没有那个文件或目录
cat: "\$2=="test_dev": 没有那个文件或目录
cat: {print: 没有那个文件或目录
cat: \$1}": 没有那个文件或目录

我尝试将  斜杠去掉,major='cat /proc/devices | awk "$2=="test_dev" {print $1}"'
结果和上面差不多:
cat: |: 没有那个文件或目录
cat: awk: 没有那个文件或目录
cat: "$2=="test_dev": 没有那个文件或目录
cat: {print: 没有那个文件或目录
cat: $1}": 没有那个文件或目录

可是在 /dev目录下  设备驱动 /dev/test_dev 是确实存在的阿!
不知到这个指令怎么改才能正确实现搜索到该设备的主设备号阿?

|
放在命令行,应该是这样:
cat /proc/devices |awk ' $2 == "test_dev" {print $1}'
找/proc/devices 下设备名为test_dev的id
实际上是没有的
cat /proc/devices看看有哪些,比如:
cat /proc/devices |awk ' $2 == "raw" {print $1}'
就会有结果

在shell脚本中,反斜杠一般用作转义字符,那些$符号等都需要转义
man mknod可以看到用法
一般执行是:
mknod console c 5 1 
console为设备文件名,自己随便取 
c是指字符型设备 (可选b,块设备) 
5是主设备号 /dev/devices里面记录现有的设备 
找个没有用的就可以了 
1是次设备号,当你要给两个同样的设备上一个驱动的时候就要分了,从0开始,1就是第二个了 ,对于字符设备,次设备号就表示同类型设备的不同设备。

而你写的脚本,我认为错了,设备都没有怎么获取设备id,然后再创建。。这个脚本没看懂

|
 不会shell 觉得‘ 应该是反引号 不是单引号

mknod的方法真是过时了啊

|

你看到错在哪里了?是你没看仔细吧

    
 
 

您可能感兴趣的文章:

  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • shell变量和子shell的问题请教
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • vim问题,怎么不启动shell窗口,而只是把shell结果放到vim自身的command 栏里去?
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • shell:sql问题,如何shell循环将不同表数据写入文件中...
  • 求助关于Java调用shell再传值给shell的问题
  • 一个奇怪的shell问题
  • 有关裁减内核及shell命令的问题
  • HP机上shell运行问题!写了个环境设定的shell,怎么也运行不了,大家来看看!
  • 子shell路径问题
  • 初学者问题,Unix Shell
  • 求助!!shell调用问题
  • 内核执行shell命令问题
  • 关于shell的问题~~~
  • shell编程实用技巧(print $0)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 技术文章 iis7站长之家
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 小弟没写过shell,求解 linux shell 命令


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3