Linux Shell输出命令结果到脚本变量中
2013-09-06 21:39
1431 查看
这段遇到一个场景就是必须依据某些命令的执行结果,例如,lsmod | grep sctp | grep -v grep|wc -l来进行某些判断。我们知道在默认情况下脚本命令的输出是标准输出或者管道到别的命令作为标准输入,不管上面如何弄,个概念上都是符合文件描的范畴。但如何跨越标准输出到脚本中的变量呢?跨越了文件系统和脚本领域,我感觉是一个比较大的跨!!查阅了《Linux 命令、编辑器与shell编程》不得不说明此书确实写的很一般,好多东西说的不够透彻和明白,在我看来仅是简单的罗列。
先是开始研究这本书,后来实在是觉得在这本书上找不到线索,也废了大半天的时间,就觉得需要采取更高效的方式,问一下别的同事或朋友,这一问还真问出了“突破口”,就是利用反引号将脚本命令括住就可以将脚本命令的执行结果传递到变量中,完成一步非常大的跨越!
既然能够将脚本执行结果转化到变量里面,那么就可以利用变量参与到后面的逻辑判断当中,就完成了所需要的功能。后来查阅了网上资料,知道$()机制也可以得到类似的击结果,而且更符合POSIX。
而且利用这种方式,将脚本执行结果导向脚本,还可以通过for in 的脚本语句,实现某些循环操作。'也就是$()可以制造出来一个集合的脚本变量出来。这样就增强了互操作性。
这次遇到的问题实际与JDK7和Linux SCTP有关系,虽然通过rpm安装了lksctp-tools的rpm,但是linux内核却不能保证SCTP模块被加载,在启动SCTP OPEN的时间就遇到系统不支持的协议的提示,但是又在某些环境下是可以正常工作的。所以,简单规避来做,必须判断sctp模块有没有被加载,然后如果没有被加载则通过modprobe命令加载SCTP。
先是开始研究这本书,后来实在是觉得在这本书上找不到线索,也废了大半天的时间,就觉得需要采取更高效的方式,问一下别的同事或朋友,这一问还真问出了“突破口”,就是利用反引号将脚本命令括住就可以将脚本命令的执行结果传递到变量中,完成一步非常大的跨越!
既然能够将脚本执行结果转化到变量里面,那么就可以利用变量参与到后面的逻辑判断当中,就完成了所需要的功能。后来查阅了网上资料,知道$()机制也可以得到类似的击结果,而且更符合POSIX。
而且利用这种方式,将脚本执行结果导向脚本,还可以通过for in 的脚本语句,实现某些循环操作。'也就是$()可以制造出来一个集合的脚本变量出来。这样就增强了互操作性。
这次遇到的问题实际与JDK7和Linux SCTP有关系,虽然通过rpm安装了lksctp-tools的rpm,但是linux内核却不能保证SCTP模块被加载,在启动SCTP OPEN的时间就遇到系统不支持的协议的提示,但是又在某些环境下是可以正常工作的。所以,简单规避来做,必须判断sctp模块有没有被加载,然后如果没有被加载则通过modprobe命令加载SCTP。
相关文章推荐
- Linux shell脚本中执行命令结果赋值给变量&&echo输出变量是否包含换行符的问题
- 用shell编写的简单密码加密程序,涉及到ASCII与字符的相互转换,以及命令结果输出到变量
- shell如何把命令输出结果存入变量
- shell 脚本 变量 获取程序输出结果异常分析
- Linux shell 命令多行结果赋值给变量
- python 调用系统命令,并将输出重定向,输出其结果至文件或者字符串变量
- 在.bat脚本中如何将一个命令的返回结果传给一个变量?
- Unix Shell编程——将命令输出结果保存到变量中
- Linux 脚本命令结果输出到文件
- 用shell编写的简单密码加密程序,涉及到ASCII与字符的相互转换,以及命令结果输出到变量
- shell 为变量赋值 命令的输出结果赋值
- shell 脚本中,grep无法读取前一个命令结果输出的一个原因
- shell脚本wc命令详解!!需求输出结果
- shell脚本中蛮量替换(将命令运行结果存入变量中)
- python文件读写操作与linux shell变量命令交互执行
- sqlplus执行脚本,并把结果输出到文件
- Linux shell script 的 关闭echo -e 在shell脚本中输出 “-e”
- linux shell脚本学习笔记二 使用结构化命令
- 使用vim在文件中插入命令执行的输出结果
- linux下单独执行命令有输出,CGI调用shell脚本,无输出